在Android中實(shí)現(xiàn)定時任務(wù)有多種方法,以下是幾種比較常用的方法:
Handler handler = new Handler();
Runnable runnable = new Runnable() {
@Override
public void run() {
// 執(zhí)行定時任務(wù)的代碼
handler.postDelayed(this, 1000); // 每隔1秒執(zhí)行一次
}
};
handler.postDelayed(runnable, 1000); // 延遲1秒后執(zhí)行第一次
Timer timer = new Timer();
TimerTask timerTask = new TimerTask() {
@Override
public void run() {
// 執(zhí)行定時任務(wù)的代碼
}
};
timer.schedule(timerTask, 1000, 1000); // 延遲1秒后執(zhí)行第一次,每隔1秒執(zhí)行一次
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, MyBroadcastReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
long startTime = System.currentTimeMillis() + 1000; // 延遲1秒執(zhí)行第一次
long interval = 1000; // 每隔1秒執(zhí)行一次
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, startTime, interval, pendingIntent);
需要注意的是,以上方法中使用的定時任務(wù)都是在UI線程中執(zhí)行的。如果需要在后臺線程中執(zhí)行定時任務(wù),可以將Runnable或TimerTask的代碼放在一個單獨(dú)的線程中執(zhí)行。