handle更新线程实例

  1. package com.example.administrator.handle;
  2.  
  3. import android.app.Activity;
    import android.os.Bundle;
    import android.os.Handler;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.TextView;
    public class MainActivity extends Activity {
    private TextView text_view = null;
    private Button start = null;
    private Button end = null;
    //使用Runable 接口启动新线程的步骤
    //1.建立runable对象,runnable是个接口,要编写实现runnable接口的类:Runnable update_thread = new Runnable()
    //runna只有一个方法,且为public属性;
    //2.建立一个Thread 对象,并将实现runnable接口的类的对象作为参数传入到thread中;Thread t = new Thread(r);
    //3.调用start方法启动线程:t.start();
    //使用handler时首先要创建一个handler
    Handler handler = new Handler();
    //要用handler来处理多线程可以使用runnable接口,这里先定义该接口
    //线程中运行该接口的run函数
    Runnable update_thread = new Runnable()
    {
    public void run()
    {
    //线程每次执行时输出"UpdateThread..."文字,且自动换行
    //textview的append功能和Qt中的append类似,不会覆盖前面
    //的内容,只是Qt中的append默认是自动换行模式
    //append 意思是在textview后面追加内容
    text_view.append("\nUpdateThread...");
    //延时1s后又将线程加入到多线程队列中,实现1s一次的定时器操作;
    handler.postDelayed(update_thread, 1000);
  4.  
  5. }
    };
  6.  
  7. @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
  8.  
  9. text_view = (TextView)findViewById(R.id.text_view);
    start = (Button)findViewById(R.id.start);
    start.setOnClickListener(new StartClickListener());
    end = (Button)findViewById(R.id.end);
    end.setOnClickListener(new EndClickListener());
  10.  
  11. }
    private class StartClickListener implements OnClickListener
    {
    public void onClick(View v) {
    // TODO Auto-generated method stub
    //将一个线程加入到线程队列
    handler.post(update_thread);
    }
    }
  12.  
  13. private class EndClickListener implements OnClickListener
    {
    public void onClick(View v) {
    // TODO Auto-generated method stub
    //将一个线程从线程队列中移除
  1. handler.removeCallbacks(update_thread);
    }
  2.  
  3. }
  4.  
  5. @Override
    public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
    }
    }
    布局文件
  1. <?xml version="1.0" encoding="utf-8"?>
  2.  
  3. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
  4.  
  5. <TextView
    android:id="@+id/text_view"
    android:layout_width="fill_parent"
    android:layout_height="200dip"
    android:text="@string/hello_world"
    tools:context=".MainActivity" />
    <Button
    android:id="@+id/start"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/start"
    />
    <Button
    android:id="@+id/end"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/end"
    />
  6.  
  7. </LinearLayout>

一个handle使用更新线程的实例的更多相关文章

  1. C#一个简单的关于线程的实例

    很多初学者听到线程会觉得晦涩难懂,很多资料一堆专有名词也是让人心烦意乱,本着学习加分享的态度,这里做一个简单的实例分享帮助初学者们初识多线程.  首先大概讲述一下多线程和多进程的区别,任务管理器里各种 ...

  2. 计算机必知必会:进程process与线程thread 进程定义为一个正在运行的程序的实例

    http://www.nowamagic.net/librarys/veda/detail/1741进程和线程这对概念的理解也是很难的,至今网络上可查的资料对其的理解出入都挺大,在不同的操作系统中,如 ...

  3. java 使用线程做一个简单的ATM存取款实例.(转)

    线程 Thread 类,和 Runable 接口 比较两者的特点和应用领域. 可以,直接继承线程Thread类.该方法编写简单,可以直接操作线程,适用于单重继承情况,因而不能在继承其他类 实现Runn ...

  4. 简单的C#线程开发实例(隔一秒改变一下Label的Text)

    要实现的效果:点击按纽,窗口上的label上出现1~100数字的变化. 第一个实例(把窗口上的label上文字改成0): using System; using System.Windows.Form ...

  5. Android TV开发总结(六)构建一个TV app的直播节目实例

    请尊重分享成果,转载请注明出处:http://blog.csdn.net/hejjunlin/article/details/52966319 近年来,Android TV的迅速发展,传统的有线电视受 ...

  6. java线程池实例

    目的         了解线程池的知识后,写个线程池实例,熟悉多线程开发,建议看jdk线程池源码,跟大师比,才知道差距啊O(∩_∩)O 线程池类 package thread.pool2; impor ...

  7. 一个完整的Installshield安装程序实例-转

    一个完整的Installshield安装程序实例—艾泽拉斯之海洋女神出品(一)---基本设置一 前言 Installshield可以说是最好的做安装程序的商业软件之一,不过因为功能的太过于强大,以至于 ...

  8. 分享一个自制的 .net线程池

    扯淡 由于项目需求,需要开发一些程序去爬取一些网站的信息,算是小爬虫程序吧.爬网页这东西是要经过网络传输,如果程序运行起来串行执行请求爬取,会很慢,我想没人会这样做.为了提高爬取效率,必须使用多线程并 ...

  9. CountDownLatch,一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。

    CountDownLatch,一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待. 主要方法 public CountDownLatch(int count); pu ...

随机推荐

  1. H5实现全屏与F11全屏

    最近做项目用到全屏,现总结一下全屏: 1.局部全屏:H5全屏和F11有区别,在这种情况下判断全屏只需要通过H5全屏属性,无论全屏后有无滚动条都可判断. /** * [isFullscreen 判断浏览 ...

  2. Do-Now—团队冲刺博客四

    各个成员今日完成的任务 侯泽洋:完成奖励页面设计,完成奖励从云端拉取到本地:完成奖励从云端拉取到本地 周亚杰:冲刺博客,个人中心设计(未完成) 王志伟:积分页面设计:积分页面设计 仇夏:树苗成长过程设 ...

  3. Yarn任务提交流程(源码分析)

    关键词:yarn rm mapreduce 提交 Based on Hadoop 2.7.1 JobSubmitter addMRFrameworkToDistributedCache(Configu ...

  4. 21 ArcMap 10.6.1 添加Excel格式数据

    注:此次的操作软件为ArcMap10.6.1,在ArcMap其它版本中也可使用,如遇到问题,欢迎交流. 1:Excel中数据(点)标准化(一般是经纬度),将原来的度分秒表示的都要转换成度表示的,如图所 ...

  5. vue全选与取消全选

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. HTTP学习总结

    首先是一张总结的图: 对各个不同的通信进行解分: 1.http通信详解 2.cookie通信图: 3.cookie管理的session信息 4.token通信

  7. iOS HTML特殊字符转译

    something about you Bye Bye è; un saluto ​ 我使用NSXMLParser,它是顺利,直到它找到èHTML实体.它要求foundCharacters:为“再见” ...

  8. BAT加密最终版

    %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a ...

  9. SET || BZOJ 1588: [HNOI2002]营业额统计 || Luogu P2234 [HNOI2002]营业额统计

    题面:P2234 [HNOI2002]营业额统计 题解:随便写写 注意:cmath中abs函数返回的是一个浮点数,在bzoj上会ce 代码: #include<cstdio> #inclu ...

  10. 使用Eclipse+jlink调试STM32

    使用Eclipse+JLINK调试STM32 安装eclipse + CDT. 安装交叉编译工具(工具链ARM CROSS GCC--GUN ARM http://gnuarmeclipse.sour ...