Timer 在开发中主要用在定时器的功能上
它有个方法 schedule(1. TimerTask, 2.j时间)
在Activity中
public class TimerTaskActivity extends Activity {
private Timer mTimer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// init timer
mTimer = new Timer();
// start timer task
setTimerTask();
}
@Override
protected void onDestroy() {
super.onDestroy();
// cancel timer
mTimer.cancel();
}
private void setTimerTask() {
mTimer.schedule(new TimerTask() {
@Override
public void run() {
Message message = new Message();
message.what = 1;
doActionHandler.sendMessage(message);
}
}, 1000, 1000/* 表示1000毫秒之後,每隔1000毫秒執行一次 */);
}
private Handler doActionHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
//...
}
};
}
2.在Service中
public class AlarmService extends Service {
@Override
public void onCreate() {
super.onCreate();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Timer alarmTimer = ((MyApplication)getApplication()).getAlarmTimer();
if(null != alarmTimer){
alarmTimer.cancel();
alarmTimer.purge();
}
alarmTimer = new Timer();
((MyApplication)getApplication()).setAlarmTimer(alarmTimer);
alarmTimer.schedule(new TimerTask() {
@Override
public void run() {
Intent alarmIntent = new Intent(AlarmService.this, AlarmReceiver.class);
alarmIntent.setAction("cn.test.packageName");//要在清单文件中配置发送广播节点
sendBroadcast(alarmIntent);
}
},1000);
return START_STICKY;
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onDestroy() {
super.onDestroy();
}
}