Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 聆听应用程序被杀死&;在它被杀死之前做点什么_Android_Android Intent_Broadcastreceiver_Android Broadcast - Fatal编程技术网

Android 聆听应用程序被杀死&;在它被杀死之前做点什么

Android 聆听应用程序被杀死&;在它被杀死之前做点什么,android,android-intent,broadcastreceiver,android-broadcast,Android,Android Intent,Broadcastreceiver,Android Broadcast,我正在开发一个Android应用程序。我的应用程序中有跑步记录 当应用程序被终止时,我需要在服务中处理一些事情。如何收听应用程序被杀事件?对此是否有广播操作?如果没有,是否有办法听到应用程序被杀死 我在MyService的onDestroy()回调中有一条日志消息,但当我在设置中“强制停止”我的应用程序时,不会调用它 public MyService extends Service{ ... @Override public void onDestroy(){ super

我正在开发一个Android应用程序。我的应用程序中有跑步记录

当应用程序被终止时,我需要在服务中处理一些事情。如何收听应用程序被杀事件?对此是否有广播操作?如果没有,是否有办法听到应用程序被杀死

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

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中有一些应用程序在被系统杀死后会自动重启,它们是如何实现这一功能的呢???

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

但是,在您的服务的
onStartCommand()
中返回
START\u STICKY
START\u REDELIVER\u INTENT
将使Android在资源再次可用时重新启动您的服务


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

我不这么认为,因为
Service.ondestory()
不保证每次服务被破坏时都会运行。是的,我登录了ondestory(),但在“系统设置”中强制停止应用程序时不会调用它。好的,那么,你的意思是,如果只考虑应用程序被系统杀死,基本上没有办法来检测这个事件…