如何安全退出已调用多个Activity的Application

如题所述

1、抛异常强制退出:
  该方法通过抛异常,使程序Force Close。
  验证可以,但是,需要解决的问题是,如何使程序结束掉,而不弹出Force Close的窗口。

  2、记录打开的Activity:
  每打开一个Activity,就记录下来。在需要退出时,关闭每一个Activity即可。

  3、发送特定广播:
  在需要结束应用时,发送一个特定的广播,每个Activity收到广播后,关闭即可。

  4、递归退出
  在打开新的Activity时使用startActivityForResult,然后自己加标志,在onActivityResult中处理,递归关闭。

  除了第一个,都是想办法把每一个Activity都结束掉,间接达到目的。
  但是这样做同样不完美。
  你会发现,如果自己的应用程序对每一个Activity都设置了nosensor,在两个Activity结束的间隙,sensor可能有效了。
  但至少,我们的目的达到了,而且没有影响用户使用。

  为了编程方便,最好定义一个Activity基类,处理这些共通问题。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-09-20
1、抛异常强制退出:
该方法通过抛异常,使程序Force Close。
验证可以,但是,需要解决的问题是,如何使程序结束掉,而不弹出Force Close的窗口。

2、记录打开的Activity:
每打开一个Activity,就记录下来。在需要退出时,关闭每一个Activity即可。

3、发送特定广播:
在需要结束应用时,发送一个特定的广播,每个Activity收到广播后,关闭即可。

4、递归退出
在打开新的Activity时使用startActivityForResult,然后自己加标志,在onActivityResult中处理,递归关闭。

除了第一个,都是想办法把每一个Activity都结束掉,间接达到目的。
但是这样做同样不完美。
你会发现,如果自己的应用程序对每一个Activity都设置了nosensor,在两个Activity结束的间隙,sensor可能有效了。
但至少,我们的目的达到了,而且没有影响用户使用。

为了编程方便,最好定义一个Activity基类,处理这些共通问题。本回答被提问者采纳
第2个回答  2017-09-20
使用单例模式创建一个Activity管理对象,该对象中有一个Activity容器(使用LinkedList等)专门负责存储新开启的每一个Activity,并且容易理解、易于操作,非常不错!
相似回答