设为首页 加入收藏

TOP

Android 比Timer更好方法
2014-11-24 11:15:11 来源: 作者: 【 】 浏览:0
Tags:Android Timer 更好 方法

TimerTask task = new TimerTask( ) {
public void run ( ) {
Message message = new Message( );
message.what = 1;
handler.sendMessage(message);
}
};


final Handler handler = new Handler( ) {
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
log.e("Timer","Timer");
update( );
break;
}


super.handleMessage(msg);
}
};


protected void onDestroy ( ) {
if (timer != null) {
timer.cancel( );
timer = null;
}
super.onDestroy( );
}
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.main);
timer.schedule(task,1000,5000);
}



最重要的一点是 timer.schedule(task,1000,5000),如果设置为 timer.schedule(task,5000)是不会工作的。

因为timer.schedule(task,5000) 是表示执行一次的任务。
timer.schedule(task,1000,5000)表示 1 秒钟后开始 5 秒钟为周期 重复执行,
更好的方法是通过下面的代码 (Handler加Runnable线程,更简洁)

java代码:
private Handler handler = new Handler( );


private Runnable runnable = new Runnable( ) {
public void run ( ) {
update( );


handler.postDelayed(this,1000);
//postDelayed(this,1000)方法安排一个Runnable对象到主线程队列中
}
};


handler.postDelayed(runnable,1000); // 开始Timer
handler.removeCallbacks(runnable); //停止Timer


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android之定时器AlarmManager 下一篇Java关于Timer schedule执行定时..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Redis on AWS:Elast (2025-12-27 04:19:30)
·在 Spring Boot 项目 (2025-12-27 04:19:27)
·使用华为开发者空间 (2025-12-27 04:19:24)
·Getting Started wit (2025-12-27 03:49:24)
·Ubuntu 上最好用的中 (2025-12-27 03:49:20)