通过调用生命周期回调来停止应用程序

时间:2013-04-05 10:29:43

标签: android quit

如何以简单的方式停止我的整个应用程序? (所有活动,服务,线程等等)一切都应该调用生命周期回调(尤其是onStop()onDestroy())。

Google建议采用以下可能的解决方案:

  • 终止进程:但这不会调用生命周期回调
  • 和完成();但这仅适用于一项活动:

但是可以从外部访问此方法,如:

//Getting all activityies, how?
//For each gotten activity
AcitvityName.finish();
or via or via getParent().finish(); ?

这对我没有帮助:Best way to quit android app?

FD

3 个答案:

答案 0 :(得分:2)

 @Override 
public void onPause() {        

        if(isFinishing()){
//code to finish() all activitys threads etc.....
}            

    super.onPause();
} 

在onPause()中你可以检查isFinishing()然后如果它正在完成它会转到onDestroy()所以你可以执行一些你想要的代码

答案 1 :(得分:1)

使用广播接收器调用您的所有活动并在其中本地调用finish,调用当前生命周期回调。

Broadcastreceiver and Paused activity

http://developer.android.com/reference/android/content/BroadcastReceiver.html

答案 2 :(得分:1)

Android不允许用户直接关闭应用程序。您可以将其最小化为后台或直接杀死进程。

但是如果你想在用户从屏幕上删除你的应用程序时调用一些回调并释放任何资源 - 你可以这样做:

清除onDestroy方法中的活动堆栈(或者如果您希望onBackPressed,onHomePressed)。它必须在所有删除活动中调用onDestroy方法,因此您可以在onDestroy活动方法中释放任何扩展资源,该方法上有链接。

因此,当用户退出您的应用程序时 - 它将删除其活动并释放所有资源。