Android服务停止工作后,我运行另一个应用程序/游戏



你知道什么可以是我的安卓应用程序服务停止工作的根本原因,当我随机运行另一个应用程序/游戏?

我没有可用的代码,我只需要原因。

谢谢。

服务在你的应用进程中运行。如果你的应用被垃圾收集,服务将停止,直到:

  • 通过manifest文件声明在新进程中启动服务
  • 设置服务粘性(推荐)。

继续研究以上两个,如果你想要更多的解释或代码,请告诉我

如果你看到服务的官方文档,谷歌清楚地解释了服务将被销毁的原因和时间。在您的场景中什么是有用的:

一个已启动的服务可以使用start前台(int, Notification) API将服务置于前台状态,在这种状态下,系统认为它是用户主动意识到的东西,因此在内存不足时不会被杀死。(理论上仍然有可能在当前前台应用程序的极端内存压力下杀死服务,但在实践中这不应该是一个问题。)

使用start前台将确保您的服务保持在同一进程中运行。一些指针:

  • 即使在低内存场景下,带有附加客户端的服务也不会被破坏
  • 无论进程如何,在低内存场景下服务都将被终止。在不同的进程中运行更好,但不能保证它不会被系统破坏。
  • 不要使用system.exit(0)来结束你的应用程序,在activity上调用finish()。
  • 启动粘性服务只是确保在内存被释放时重新启动服务。

希望有帮助!

相关内容

最新更新