Timer搭配TimerTask与Handler使用(更新UI)
//MainActivity
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case 1:
//你要更新的东西
break;
}
}
};
private final long STEP_REFRESH_DELAY_TIME = 30 * 1000; //刷新延迟时间 30秒
private final long EXECUTION_TIME_FOR_THE_FIRST_TIME =5 * 1000; //第一次更新时间 5秒
private Intent mService;
private Timer mTimer = new Timer();
mTimer.schedule(new TimerTask() {
@Override
public void run() {
Message msg = new Message();
msg.what = 1;
handler.sendMessage(msg); // 通知主线程
}
} },EXECUTION_TIME_FOR_THE_FIRST_TIME,STEP_REFRESH_DELAY_TIME);
}
或者(设置开关)
`
if (mTimer == null) {
mTimer = new Timer();
} else {
mTimer.cancel();
mTimer = new Timer();
}
if(mTimer != null && mTimerTask != null )
mTimer.schedule(new TimerTask() {
@Override
public void run() {msg = mHandler.obtainMessage();
msg.what = 2;
bundle = new Bundle();
bundle.putInt("upImage", count); //往Bundle中存放数据
msg.setData(bundle);//mes利用Bundle传递数据
count++;
if (count==4){
count=0;
mTimer.cancel();
}
if (!mIsOpen) {
mHandler.sendMessage(msg);
}
}
}, delay, period);`