【发布时间】:2014-08-14 08:51:02
【问题描述】:
我通常编写此代码以使用AlarmManager 启动服务。
intent = new Intent(getActivity(), someservice.class);
pendingNotificationIntent = PendingIntent.getService(getActivity(), 0, intent, 0);
alarm = (AlarmManager) getActivity().getSystemService(getActivity().ALARM_SERVICE);
int interval = 30 * 1000;
long now = Calendar.getInstance().getTimeInMillis();
alarm.setRepeating(AlarmManager.RTC_WAKEUP, now, interval, pendingNotificationIntent);
我的AsyncTask 是一个私有类,我在其中注册AlarmManager 对象。
如何调用AsyncTask 而不是使用AlarmManager 对象的服务?
PS。如果有更好的方法可以每 X 秒/分钟运行一次AsyncTask,请提出!
【问题讨论】:
-
只是出于好奇……为什么?您是否有特殊原因需要
AsyncTask而不是Service? -
@kabuko 此任务应该仅在应用程序打开(UI 可见)时工作,因此当我可以简单地调用已经存在的
AsyncTask时,没有使用服务和双重编码的目的。我知道我可以使用Timer,但我不确定这是否正确,因为通常不建议在重复任务中使用它。
标签: android android-asynctask alarmmanager