0


就我而言,我必须在接下来的 3 小时内每 5 分钟执行一次任务。哪一个会更好 AlarmManger 或 Timer。在 AlarmManger 的情况下,我将启动一个意图服务来完成任务,然后我将使用 TimerTask。此外,如何在intentService onHandleIntent 中使用AlarmManager.cancel(pendingIntent) 的待处理意图。

可能的副本,但有不同的情况。Android Service 中 Timer Task VS Alarm Manager 的使用

谢谢。

4

1 回答 1

1

首先,设置:

Intent i = new Intent( context.getApplicationContext(), NameOfYourClass.class );
PendingIntent pi = PendingIntent.getBroadcast( c.getApplicationContext(), 0, i, 0 );
AlarmManager am = (AlarmManager) context.getSystemService( Context.ALARM_SERVICE );
am.setRepeating( AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime(), 5*60*1000, pi ); 
// ELAPSED_REALTIME will execute ONLY when phone is awake, to execute always use ELAPSED_REALTIME_WAKEUP

就在此初始设置之后,当计数器启动时保存:,例如。偏好管理器

最后,时机成熟:

Intent i = new Intent( context.getApplicationContext(), NameOfYourClass.class );
PendingIntent pi = PendingIntent.getBroadcast( context.getApplicationContext(), 0, i, 0 );
AlarmManager am = (AlarmManager) context.getSystemService( Context.ALARM_SERVICE );
am.cancel( pi );
于 2012-07-30T09:19:25.283 回答