我目前正在尝试制作一个永无止境的安卓应用程序(冻结/停止/滑动/杀死等时重新启动)用于特定用途。
所以我正在使用带有onTaskRemoved()的后台服务,以便在从最近的应用程序列表中滑动时重新启动服务。还START_STICKY保持后台运行。
我的应用程序在它上面运行的新应用程序不多时,可以很好地响应我的声音(它显示 toast)。但是当一段时间过得很快或者上面有 3~4 个正在运行的应用程序时,它就会冻结(不响应我的声音)。
有没有办法让我的应用程序始终在其他应用程序上运行(例如始终在按下主页按钮几秒钟时显示的最近应用程序列表的顶部),或者只是在冻结时重新启动应用程序?
请帮帮我。我知道尝试创建一个永无止境的应用程序听起来可能很奇怪,但如果您帮助我,这将对我的项目有很大帮助。
谢谢:)
对于 android 不要停止你可以调用 startForeground() 的服务
但是,如果用户神秘地错过某些服务,则某些服务将被用户错过 消失。例如,附带的默认音乐播放器应用程序 安卓使用服务进行实际的音乐播放。那边 用户可以在继续使用手机的同时听音乐 其他目的。该服务仅在用户进入和 按音乐播放器活动中的停止按钮。如果该服务 如果意外关闭,用户可能会想知道什么是 错。
像这样的服务可以声明自己是 "前景"。这将导致他们的优先级上升并使他们 不太可能被撞出内存。权衡是 服务必须维护通知,以便用户知道这 服务正在声明前景的一部分。而且,理想情况下, 通知提供了返回某些活动的简单路径,其中 用户可以停止该服务。
为此,请在服务的 onCreate() 中(或 服务的生命是有意义的),调用 startForeground()。这 采用通知和本地唯一整数,就像 通知管理器上的 notify() 方法。它会导致通知 出现并将服务移动到前台优先级。后来,你 可以调用 stopForeground() 以返回到正常优先级。