`

postDelayed方法和removeCallbacks方法的使用

 
阅读更多

方法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效果

from:http://book.51cto.com/art/201211/363310.htm

 

 

分享到:
评论

相关推荐

    关于postDelayed

    关于android开发中的handler中的postDelayed方法的讲解,帮助大家学习这个方法在实际中的应用

    Android开发使用Handler的PostDelayed方法实现图片轮播功能

    主要介绍了Android开发使用Handler的PostDelayed方法实现图片轮播功能,结合实例形式分析了Android基于Handler的PostDelayed方法实现图片轮播功能的具体步骤与相关操作技巧,需要的朋友可以参考下

    Android定时器实现的几种方式整理及removeCallbacks失效问题解决

    实现定时器有很多种方式,在这里我简单的介绍几种方式 (1)使用Handler + Runnable的方式 代码如下: Handler handler = new Handler(); Runnable runnable = new Runnable() { @Override public void run() { //你要...

    android 定时器的三种方法

    在android中,经常用到的定时器主要有以下几种实现: 一、采用Handler与线程的sleep...二、采用Handler的postDelayed(Runnable, long) 方法 三、采用Handler与timer及TimerTask结合的方法。 三种方法都有示例代码。

    Android中定时器的3种实现方法

    在Android开发中,定时器一般有以下3种实现方法:1.采用Handle与线程的sleep(long)方法; 2.采用Handler的postDelayed(Runnable, long)方法; 3.采用Handler与timer及TimerTask结合的方法.

    Android APP启动多图滚动的UI引导页动画效果.rar

     当监听动画结束的动作,在动画结束的时候开启一个线程,这个线程中绑定一个Handler,并在这个Handler中调用goHome方法,而通过postDelayed方法使这个方法延迟500毫秒执行,达到达到持续显示第一屏500毫秒的效果。...

    Android闪屏效果实现方法

    android的实现非常简单,使用Handler对象的postDelayed方法就可以实现。在这个方法里传递一个Runnable对象和一个延迟的时间。该方法实现了一个延迟执行的效果,延迟的时间由第2个参数指定,单位是毫秒。第一个参数是...

    定时器的4种方法

    Android定时器的4种方法: 1.采用 Handler 与线程的 sleep(long )方法 2.采用 Handler 的 postDelayed(Runnable, long) 方法 3.采用 Handler 与 timer 及 TimerTask 结合的方法 4.使用CountDownTimer倒计时类

    Android实现定时器的3种方法

    二、采用Handler的postDelayed(Runnable, long)方法 三、采用Handler与timer及TimerTask结合的方法 下面逐一介绍: 一、采用Handle与线程的sleep(long)方法 Handler主要用来处理接受到的消息。这只是最主要的方法,...

    android 中定时器的3个实现方法(均测试通过)

    android 中定时器的3个实现方法(均测试通过) 一、采用Handler与线程的sleep(long)方法 二、采用Handler的postDelayed(Runnable, long)方法 三、采用Handler与timer及TimerTask结合的方法

    基于Android中实现定时器的3种解决方法

    在Android开发中,定时器一般有以下3种实现方法:一、采用Handler与线程的sleep(long)方法二、采用Handler的postDelayed(Runnable, long)方法三、采用Handler与timer及TimerTask结合的方法下面逐一介绍:一、采用...

    Android三种不同实现方式的定时器

    在Android开发中,定时器一般有以下3种实现方法: 1、采用Handler与线程的sleep(long)方法 2、采用Handler的postDelayed(Runnable, long)方法 3、采用Handler与timer及TimerTask结合的方法

    Android代码-android-weak-handler

    If you create anonymous Runnable and call to postDelayed with large timeout, that Runnable will be held in memory until timeout passes. Even if your Runnable seems small, it indirectly references ...

    android实现Splash闪屏效果示例

    主要介绍了android实现Splash闪屏效果的方法,涉及Android中postDelayed方法及AndroidManifest.xml权限控制的相关使用技巧,需要的朋友可以参考下

    Android实现定时任务及闹钟

    android中定时有很多种是实现,常见的Handler 与Thread的结合,handler.postDelayed ,以及要使用的AlarmManger 等都可以实现定时任务的执行,但是使用场景却大不相同,这里主要是怎么用AlarmManager实现定时任务。...

    Android编程中延后处理事件的方法小结

    主要介绍了Android编程中延后处理事件的方法,总结分析了Handler和TimerTask相结合以及使用postDelayed实现延后处理事件的相关操作技巧,需要的朋友可以参考下

    Android 定时任务过程详解

    二、采用Handler的postDelayed(Runnable, long)方法(最简单的android实现) 三、采用Handler与timer及TimerTask结合的方法(比较多的任务时建议使用) android里有时需要定时循环执行某段代码,或者需要在某个时间点...

    Android实现过渡动画、引导页 Android判断是否第一次启动App

    这里我使用了Handler的postDelayed()方法。把过渡动画的Activity设为默认启动的Activity。在当前Activity中,执行postDelayed()方法,把延时的时长设为两秒即可。 过渡页面如下:transition_view.xml <?xml ...

    安卓打地鼠

    这是一款关于打地鼠的安卓游戏开发,供初学者参考学习

Global site tag (gtag.js) - Google Analytics