java - 您如何从服务中检测到应用程序进程已关闭?

标签 java android service

我有一个包含服务和各种 Activity 的 Android 应用程序。当应用程序启动时,服务将通过 startService(Intent service) 启动。各种 Activity (但不是所有 Activity )绑定(bind)到服务并从中发送/接收消息。当应用程序在任何 Activity 的前台或后台时服务应该是活跃的,但应该在整个应用程序关闭时结束(即用户从最近的应用程序屏幕滑动应用程序)。

我如何从服务(目前永远不会停止运行,直到您在设备上手动停止它)确定应用程序进程已经结束,以便我可以停止服务?

最佳答案

由于服务希望与其他所有内容属于同一个进程,因此不会通知它进程已终止,因为进程将终止,因此服务的代码将不再运行。没有进程终止的预先警告。

如果出于某种原因您将服务置于单独的进程中,请重新考虑。

另请注意,IntentService 并非真正设计用于绑定(bind)模式。 IntentService 专为在后台线程上执行的事务性工作而设计。将 IntentService 用于任何其他用途是一种主要的代码味道。

关于java - 您如何从服务中检测到应用程序进程已关闭?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22542642/

相关文章:

android - 如何在 App 中保持 XMPP 连接?

iOS - 在应用程序外触发点击事件 - 比如在应用程序抽屉中

java - 使用模拟测试时无法注入(inject)application.properties中定义的@value

java - 在 android sqlite 数据库中插入和执行查询时出错

java - 在 Android 应用程序中实现 Jetty 服务器

android - 反编译APK后Java文件中的错误

java - 如何使用多级资源编写 java jersey REST API?

java - java中方法的引用

c# - 在Android上混合生成的对象值(声音/分数),但在Unity2D中是正确的

android - Activity 中的广播接收器