android - onTaskRemoved() 在主页按下并终止应用程序时未被调用

标签 android

此问题与 onTaskRemoved() not getting called in HUAWEI and XIOMI devices 不重复

问题:

当我按下主页按钮并终止应用程序时 onTaskRemoved()(服务类覆盖方法)- 未调用。

如果我按下后退按钮并终止应用程序 --> onTaskRemoved() 调用完美

此问题发生在 Android Lollipop 版本和奥利奥版本中

MyService.class -> list 声明

    <service android:name=".MyService"
        android:label="MyService"
        android:stopWithTask="false"
        android:enabled="true"
        android:exported="true"
        />

我已经使用了返回START_STICKY;在 onStartCommand()

测试设备

联想、三星—— Lollipop 版

三星-奥利奥版

欢迎提出任何建议或意见。您的小提示将有助于解决这个大问题。

最佳答案

根据您的用例,您应该能够满足 criteria对于 Android N 及更高版本的白名单。可以关注this链接到将您的应用列入白名单。通过请求此权限,您可以放宽 Doze 模式和 Android O 隐含的一些限制(如访问网络或保持部分锁定)。这些限制是由操作系统对未列入白名单的应用施加的。

对于 Lollipop:某些使用 cyanogenmod 或其他自定义实现的制造商可能会影响 START_STICKY 的预期行为。在这种情况下,解决方法是依赖 onDestroy() 服务方法:

  1. 重新启动服务。
  2. 触发一个 AlarmManager,它将在几秒后触发并启动服务。

如果您使用方法 2:

在 START_STICKY 按预期运行的普通设备上,您可以使用 AlarmManager 检查服务是否正在运行:

  1. 在服务中维护一个静态变量,用于检查服务是否已经启动
  2. 取消服务的AlarmManager onStartCommand()。

关于android - onTaskRemoved() 在主页按下并终止应用程序时未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49486656/

相关文章:

android - 尝试将新的 Camera.apk 重新安装到 Android 模拟器 2.2 时失败

android - -1469913 天计算 Android 中重复发生的事件

android - 如何简单地读取任何 Twitter 用户的推文? (无需登录推特)

android - BufferedReader 的错误使用

android - 方法调用 'setDisplayHomeAsUpEnabled' 可能会产生 'java.lang.NullPointerException

android - ffmpeg 棕褐色效果对视频

android - 什么时候使用 android GCM 有意义?

java - Android:在布局中出现 "Level Complete"对话框的方法

java - 从 Android 上传图像时,Ruby 服务器上出现 argumenterror in utf-8 错误字节序列

android - 如何测试/执行 android 的屏幕旋转行为?