2

我正在开发一个 Android 应用程序。我的应用程序中正在运行一个服务

当应用程序被杀死时,我需要处理服务中的某些事情。如何收听应用程序被杀死事件?对此有广播行动吗?如果没有,有没有办法听应用程序被杀死???

我在MyServiceonDestroy()的回调中有一条日志消息,但是当我在“设置”中“强制停止”我的应用程序时不会调用它。

public MyService extends Service{
   ...
  @Override
  public void onDestroy(){
     super.onDestroy();
     //It is not called when force stop my app from system settings
     Log.i("Debug","service is killed!"); 
  }
}

但是我知道google play中有一些应用程序一旦被系统杀死就会自动重启,那么他们是如何实现这个功能的呢??

4

1 回答 1

1

在您的应用程序被杀死之前,您无法检测或接收消息。onPause()并且onDestroy()是你最好的选择,但不能保证它们中的任何一个都会被跟注。

但是,当资源再次可用时,返回START_STICKY或返回您START_REDELIVER_INTENTonStartCommand()服务将使 Android 重新启动您的服务。

请注意,在较新版本的 Android 上强制停止应用程序(不记得确切是哪个版本,但我认为是 ICS)将停止该过程,直到用户手动启动它。这意味着如果用户点击设置中的强制停止,START_STICKY 将无效。

于 2013-11-13T21:27:22.993 回答