《Android学习精要》第6章Broadcast、Service服务及Handle对象,本章介绍Android的核心组件Service,通过Service这种技术可以在系统的后台进行一些隐藏性任务的执行,前台用户并不会体会到程序在运行,这种技术通常用在一些计划任务中,Android的4大组件Service在实现这一功能时的使用率非常高,而要实现一个功能完善的软件不可能不用到Service。本节为大家介绍postDelayed方法和removeCallbacks方法的使用。

AD:2014WOT全球软件技术峰会北京站 课程视频发布

6.4.2  postDelayed方法和removeCallbacks方法的使用(1)

方法postDelayed的作用是延迟多少毫秒后开始运行,而removeCallbacks方法是删除指定的Runnable对象,使线程对象停止运行。

方法声明如下:

  1. public final boolean postDelayed (Runnable r, long delayMillis) 

其中参数Runnable r在Handler对象所运行的线程中执行。

创建名称为handler2的Android项目,Main.java的核心代码如下:

  1. public class Main extends Activity {  
  2.     private Button button1;  
  3.     private Button button2;  
  4.  
  5.     private Handler handler = new Handler();  
  6.  
  7.     private int count = 0;  
  8.  
  9.     private Runnable runnableRef = new Runnable() {  
  10.         public void run() {  
  11.             Log.v("2", Thread.currentThread().getName());  
  12.             count++;  
  13.             Log.v("!", "count=" + count);  
  14.             handler.postDelayed(runnableRef, 1000);  
  15.         }  
  16.     };  
  17.  
  18.     @Override  
  19.     public void onCreate(Bundle savedInstanceState) {  
  20.         super.onCreate(savedInstanceState);  
  21.         setContentView(R.layout.main);  
  22.  
  23.         Log.v("1", Thread.currentThread().getName());  
  24.  
  25.         button1 = (Button) this.findViewById(R.id.button1);  
  26.         button2 = (Button) this.findViewById(R.id.button2);  
  27.  
  28.         button1.setOnClickListener(new OnClickListener() {  
  29.             public void onClick(View arg0) {  
  30.                 Thread thread = new Thread(runnableRef);  
  31.                 thread.start();  
  32.                 Log.v("!!!!!!!!!!!!!", "end");  
  33.             }  
  34.         });  
  35.  
  36.         button2.setOnClickListener(new OnClickListener() {  
  37.             public void onClick(View arg0) {  
  38.                 handler.removeCallbacks(runnableRef);  
  39.             }  
  40.         });  
  41.  
  42.     }  
  43. }  

程序运行后单击button1按钮开始循环,count累加1,运行结果如图6.41所示。
 
图6.41  循环加1效果

更多相关文章

  1. Android(安卓)双击返回键退出程序的方法总结
  2. Android----Thread+Handler 线程 消息循环
  3. Android(安卓)重学系列 有趣的工具--智能指针与智能锁
  4. android 输入法(包括手写界面)
  5. Kotlin Android(安卓)UI利器之Anko Layouts
  6. Android(安卓)Parcel机制
  7. Android之服务Service和它的CP们(BroadcastReceiver、Messenger
  8. android 混淆规则详解
  9. Android中进行图像压缩和缩放

随机推荐

  1. android 无线连接eclipse
  2. Android(安卓)Audio
  3. Android判断Intent是否存在,是否可用
  4. Android——继承SimpleAdapter重写自己的
  5. android LinearLayout 动态添加子View
  6. Android(安卓)编程下 Touch 事件的分发和
  7. Android(安卓)百度地图笔记
  8. android wifi 处理
  9. android XML文件序列化
  10. Android(安卓)jni调用,实现自己的JNI_OnLo