繁体   English   中英

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

[英]What is the best practice to start a service every minute in android?

我正在使用Android的AlarmManager,并使用elapsed_time_wakeup每分钟安排一次重复警报。 此警报触发服务。

服务完成其工作(对服务器(在我的情况下为Facebook服务器)执行ping操作以获取数据)。 接下来,我调用服务的onDestroy()。 因此,每分钟服务启动->可以正常工作-> onDestroy()

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

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

只要确保服务保持运行即可。 直到您从它调用stopSelf()并且开始活动也不会停止它之前,情况可能就是这样。 您可能希望以

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中的startForeground()来启动一些活动来控制它并显示结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM