android O杀死服务;这导致了什么条件?

时间:2017-08-08 13:45:31

标签: android android-8.0-oreo

我正在努力使应用程序兼容android-o&我注意到系统正在用这个Android版本中的一个服务做一些新的事情。

情况:

  • class MyService extends Service { .. }与活动一起启动
  • MyService.onStartCommand(..)返回START_NOT_STICKY
  • 用户离开所有屏幕后,计划在一分钟后执行警报

我遇到的新逻辑是,当分钟后警报响起时,MyService会不断停止。在振铃警报调用BroadcastReceiver.onReceive(..)之前,服务会立即停止。此警报在60或70秒后是否设置为响铃似乎并不重要。

Android O是唯一正在执行此操作的OS版本(我试过的版本)。这里的逻辑是什么?我可以在不返回START_STICKY的情况下停止此操作吗?

1 个答案:

答案 0 :(得分:4)

Android O中的后台服务有新的限制。

查看文档:{​​{3}}

改为使用JobSchedulerJobService

有关如何使用它的更多信息:https://developer.android.com/preview/features/background.html#services