我正在寻找一种通过代码退出我的 android 应用程序的方法。是的,我知道,我不应该这样做,因为当您按下后退按钮时,android 会处理它,但我有一个自定义流程迫使我实现这一点。我已经搜索了一段时间,并找到了多个答案:
- 不应该这样做=>没有选择。
- 在我的活动中调用 finish() => 仅针对 1 个活动,而不是整个应用程序。
- 使用特殊标志启动第一个活动的意图 => 我有多个入口点,所以不是一个真正的选择。
- 只是杀死我自己的进程=>不确定这个,这会在所有活动中调用 onDestroy() 方法吗?我的后台服务会继续运行吗?(不应该停止)
所以我想知道,是否有任何其他选项可以退出我的应用程序,或者我真的仅限于这些选项?如果真的没有其他选择,那么我正在考虑在我的 Application 类中创建我的活动的所有实例的列表,然后循环它们以在它们上调用 finish() 。但我不知道这是否是处理这个问题的正确方法。
所以这就是为什么我在这里问我的问题,这是关闭我的应用程序的最佳方式?
编辑:我或多或少地解决了这个问题。我有一个我的活动的弱引用列表。在每个 onCreate 中,我将活动添加到列表中。然后,当我想退出我的应用程序时,我只需循环列表并调用 finish()。问题是:如果列表太大,它不会完成我所有的活动,因为 android 已经摧毁了它们。所以每次我确定我不再需要它们时,我都会完成它们。就我而言,列表不能超过 3/4 活动,因此无需再担心活动未完成。同样使用这种方法,我不必破坏自己的进程。