您的位置:首页 > 其它

postDelayed方法和removeCallbacks方法的使用

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

AD:51CTO技术沙龙 | 赋予APP不同凡响的交互和体验>>

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

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

方法声明如下:
public final boolean postDelayed (Runnable r, long delayMillis)


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

创建名称为handler2的Android项目,Main.java的核心代码如下:
public class Main extends Activity {
private Button button1;
private Button button2;

private Handler handler = new Handler();

private int count = 0;

private Runnable runnableRef = new Runnable() {
public void run() {
Log.v("2", Thread.currentThread().getName());
count++;
Log.v("!", "count=" + count);
handler.postDelayed(runnableRef, 1000);
}
};

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Log.v("1", Thread.currentThread().getName());

button1 = (Button) this.findViewById(R.id.button1);
button2 = (Button) this.findViewById(R.id.button2);

button1.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
Thread thread = new Thread(runnableRef);
thread.start();
Log.v("!!!!!!!!!!!!!", "end");
}
});

button2.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
handler.removeCallbacks(runnableRef);
}
});

}
}


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


图6.41 循环加1效果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: