我的应用程序中有一个方法,我希望根据用户选择的内容重复调用。就像用户选择每小时一样,活动会触发每小时调用的方法。我想知道安排这个重复任务的最佳方法。
我一直在尝试使用计时器和计时器任务,但由于某种原因,当我使用java日历类时它似乎不起作用,如下所示:
Calendar c1 = Calendar.getInstance();
c1.add(Calendar.SECOND, 30);
updateTimer.scheduleAtFixedRate(cleanCompletedCache, c1.getTimeInMillis(),hour );
从我读过的内容来看,处理程序不适合这种多次重复的任务。我是否必须使用报警管理器,为什么上述代码不能正确执行?感谢
答案 0 :(得分:3)
您需要AlarmManager及其setRepeating或setInexactRepeating调用。
您可以安排将Intent传递到您的应用程序,并编写一个意图接收器来处理它。这样,激活您的应用程序完全由Android系统负责,您的应用程序无需在等待激活的整个小时内运行。
如果由于一些奇怪的原因,您需要在定时器调用之间运行代码,则需要保持后台服务运行,但您仍然使用AlarmManager来获取唤醒。