Android中的定时任务,有两种任务实现,一种是Java API Timer类实现,另一种是Android的Alarm机制。由于Java中的Timer 类实现存在一个明显短板——不适用于哪些长期在后台运行的定时任务。因为,Android 手机长时间不操作的情况下自动让CPU进入到睡眠状态,这就有可能导致Timer类中的定时任务,无法正常运行。因此,我们推荐使用第二组Alarm机制!
通过getSystemService()方法来获取实例。然后通过set()方法就可以设置定时任务,参考例子如下:
public void run() {
Intent intent = new Intent(mContext, MainActivity.class);
PendingIntent restartIntent = PendingIntent.getActivity(mContext, 0, intent, Intent.FLAG_ACTIVITY_NEW_TASK);
// getSystemService()方法来获取实例
AlarmManager mgr = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE);
// set()方法设置定时任务,AlarmManager.RTC
// RTC(设置闹钟时间从系统当前时间开始System.currentTimeMillis ())
mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 1000, restartIntent);
mDefaultHandler.uncaughtException(thread, ex);
}