加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

Android 比Timer更好技巧

发布时间:2021-11-25 17:06:00 所属栏目:PHP教程 来源:互联网
导读:java代码: Timer timer = new 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 han
java代码:
Timer timer = new 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

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读