3

我的应用程序中有一个方法,我想根据用户的选择重复调用它。就像用户选择每小时一样,活动会触发每小时调用的方法。我想知道安排这个重复任务的最佳方法。

我一直在尝试使用 Timers 和 Timer 任务,但由于某种原因,当我使用 java 日历类时它似乎不起作用,如下所示:

    Calendar c1 = Calendar.getInstance();
          c1.add(Calendar.SECOND, 30);    
  updateTimer.scheduleAtFixedRate(cleanCompletedCache, c1.getTimeInMillis(),hour );

从我一直在阅读的内容来看,处理程序不适合这种多次重复的任务。我是否必须为此使用警报管理器,为什么上面的代码不能正确执行?谢谢

4

1 回答 1

3

您需要 AlarmManager 和它的 setRepeating 或 setInexactRepeating 调用。

在那里,您安排一个 Intent 交付给您的应用程序,并编写一个 Intent 接收器来处理它。这样,您的应用程序的激活完全是 Android 系统的责任,您的应用程序不需要运行整个小时,它只是等待激活。

如果出于某种奇怪的原因,您需要在计时器调用之间运行代码,则需要保持后台服务运行,但您仍会使用 AlarmManager 来获取唤醒。

于 2011-05-07T20:51:49.510 回答