Android服务的生命周期因手机而异

时间:2016-12-18 19:55:11

标签: android android-activity service lifecycle

我正在努力使服务保持活动超出活动生命周期。

在两部手机(三星Galaxy S6和索尼Xperia Z3 Compact)上,以与活动不同的流程开始活动,然后在服务可见时滑动删除应用,并显示通知,使服务保持活跃状态​​。

在第三部手机上,华为Honor 8完全相同的代码会破坏服务并取消立即安排的任何警报。

我每隔10秒就会安排一次警报(他们会立即取消华为,并在三星/索尼上工作)。并在后台运行服务时激活LocationListener。

另一个不同之处在于优先MAX和工作电话上的持续通知不能通过滑动或清除来取消,但华为也是如此。

我已经请求忽略电池优化和其他设置,没有任何区别。我也试过寻找一个选项,在屏幕关闭时不要杀死应用程序,华为似乎也立即做了。

可以采取哪些措施来保持服务在活动被终止或没有主动运行后运行。如果在内存不足的情况下,活动会继续,但从不服务,因为它几乎不占用任何内存。但是通过这种设置,服务会立即被杀死。

我是否正在查看我可能无法通过代码预测或控制的特定制造设置?

我能看到的唯一可能解决这类问题的方法是向系统发送静默推送,检查服务是否非常频繁,然后在应该处于活动状态时重新启动它(由于用户选择这样做但是系统无论如何杀死它。)

1 个答案:

答案 0 :(得分:0)

对于华为设备,您可以从“通知”面板中轻扫正在进行的通知。这是一个问题,因为它不应该像那样,并且已经修复,并且可以在新的更新上正常工作。

关于从RecentsActivity关闭任务时服务被杀,因为华为有一个名为HwSystemManager(PhoneManager)的系统应用程序来执行此任务。如果您进入PhoneManager并在受保护的应用程序下,启用您的APP作为受保护的APP,那么它将不会终止您的服务,并且您的应用程序可能在后台长时间存在,直到并且除非内存不足。< / p>