我有一个包含服务和各种 Activity 的 Android 应用程序。当应用程序启动时,服务将通过 startService(Intent service) 启动。各种 Activity (但不是所有 Activity )绑定(bind)到服务并从中发送/接收消息。当应用程序在任何 Activity 的前台或后台时服务应该是活跃的,但应该在整个应用程序关闭时结束(即用户从最近的应用程序屏幕滑动应用程序)。
我如何从服务(目前永远不会停止运行,直到您在设备上手动停止它)确定应用程序进程已经结束,以便我可以停止服务?
最佳答案
由于服务希望与其他所有内容属于同一个进程,因此不会通知它进程已终止,因为进程将终止,因此服务的代码将不再运行。没有进程终止的预先警告。
如果出于某种原因您将服务置于单独的进程中,请重新考虑。
另请注意,IntentService
并非真正设计用于绑定(bind)模式。 IntentService
专为在后台线程上执行的事务性工作而设计。将 IntentService
用于任何其他用途是一种主要的代码味道。
关于java - 您如何从服务中检测到应用程序进程已关闭?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22542642/