在Android中每分钟开始服务的最佳实践是什么?



我正在使用Android的AlarmManager,并每分钟使用ELAPSED_TIME_WAKEUP安排重复警报。这一警报射击了服务。

服务可以完成其工作(我的情况下为服务器(Facebook服务器)获取数据)。接下来,我称之为服务的OnDestroy()。因此,每个分钟的服务开始 ->确实有效 -> ondestroy()

是在Android中执行此操作的最佳方法?

您真的每分钟都需要新服务吗?我认为您想开始单个服务。该服务每分钟检查服务器并以某种方式报告成功或错误?您需要通过定期操作始终运行服务,而不是定期服务开始。在这种情况下,启动新服务可能会比自身检查更多的资源。

只需确保服务保持运行即可。在您从中调用stopelf()并且开始活动也不会阻止它之前,这可能是例子。您可能需要以

的方式运行
private ping() {
  // periodic action here.
  scheduleNext();
}
private scheduleNext() {
  mHandler.postDelayed(new Runnable() {
    public void run() { ping(); }
  }, 60000);
}
int onStartCommand(Intent intent, int x, int y) {
  mHandler = new android.os.Handler();
  ping();
  return STICKY;
}

您可能只需要定期检查WiFi连接或存在的连接。也许停止检查您何时已经知道问题并正在解决问题。您可能需要使用Service从Service开始进行一些活动来控制它并显示结果。

相关内容

最新更新