Timer是一个执行任务的类,他接受TimerTask的参数;
Timer执行任务有两种方式,一种是在某个指定的时候执行某个任务timer.schedule(Timertask task,Data data),另一种是在多长时间之后执行某个任务timer.schedule(TimerTask task,long delay);
TimerTask中执行指定的任务,但由于Android是线程安全的,所有的界面的更新都必须放到主线程中,所以要使用到Handler对象。
主体代码如下:
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
Timer timer
=
new
Timer();
Handler handler = new Handler(){
@Override
public void handleMessage(Message msg){
switch (msg.what){
case 1 :
setTitle( " 真的变了 " );
break ;
}
super.handleMessage(msg);
}
};
TimerTask task = new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
// 由于主线程安全,页面的更新需放到主线程中
Message msg = new Message();
msg.what = 1 ;
handler.sendMessage(msg);
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 一秒后更改标题
timer.schedule(task, 1000 );
}
Handler handler = new Handler(){
@Override
public void handleMessage(Message msg){
switch (msg.what){
case 1 :
setTitle( " 真的变了 " );
break ;
}
super.handleMessage(msg);
}
};
TimerTask task = new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
// 由于主线程安全,页面的更新需放到主线程中
Message msg = new Message();
msg.what = 1 ;
handler.sendMessage(msg);
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 一秒后更改标题
timer.schedule(task, 1000 );
}