如何知道我的应用程序何时被杀死?

我需要知道什么时候用户杀死我的应用程序(强制停止)。 我一直在阅读Android生命周期,它具有onStop和onDestroy函数,这些函数与用户在我的应用程序上结束的每个活动相关,但不是在用户强制停止或杀死我的应用程序时。

有什么办法知道用户什么时候杀了应用程序?

没有办法确定一个进程何时被杀死。 从如何检测如果Android应用程序是强制停止或卸载?

当用户或系统的力量停止你的应用程序,整个过程简单地被杀死。 没有回复通知你这是发生了。

当用户卸载应用程序时,首先进程被终止,然后你的apk文件和数据目录被删除,包裹pipe理器中的logging告诉其他应用程序你已经注册了哪个意图filter。

我find了一种方法来做到这一点…..

1)像这样做一个服务

public class OnClearFromRecentService extends Service { @Override public IBinder onBind(Intent intent) { return null; } @Override public int onStartCommand(Intent intent, int flags, int startId) { Log.d("ClearFromRecentService", "Service Started"); return START_NOT_STICKY; } @Override public void onDestroy() { super.onDestroy(); Log.d("ClearFromRecentService", "Service Destroyed"); } @Override public void onTaskRemoved(Intent rootIntent) { Log.e("ClearFromRecentService", "END"); //Code here stopSelf(); } } 

2)像这样在Manifest.xml中注册这个服务

 <service android:name="com.example.OnClearFromRecentService" android:stopWithTask="false" /> 

3)然后开始你的飞溅活动这项服务

 startService(new Intent(getBaseContext(), OnClearFromRecentService.class)); 

而现在,每当你将从android最近清除你的应用程序然后这个方法onTaskRemoved()将执行。

创build一个应用程序类

 onCreate() Called when the application is starting, before any activity, service, or receiver objects (excluding content providers) have been created. onLowMemory() This is called when the overall system is running low on memory, and actively running processes should trim their memory usage. onTerminate() This method is for use in emulated process environments. 

即使你是应用程序Killed或强制停止,Android将再次启动你的应用程序类

你总是可以使用这个代码:

 protected void onCreate(Bundle savedInstanceState) { //... Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() { @Override public void uncaughtException(Thread thread, Throwable ex) { //inform yourself that the activity unexpectedly stopped //or YourActivity.this.finish(); } }); //... } 

我有替代idea.i有像you.above方法相同的问题不fix.my问题:“我想清除所有保存的数据整个应用程序,当用户完全closures应用程序”

所以,我添加了清除()和清除保存的数据(从共享首选项或tinyDB)在应用程序类。