【发布时间】:2013-03-10 18:33:09
【问题描述】:
场景:
我的 Android 应用程序中有四个活动,比如说 A、B、C 和 D。应用程序中有一个 Constants.java 类扩展 Application 类以维护全局应用程序状态。 Constants 类具有应用程序的所有常量变量。活动流程是这样的A-->B-->C-->D。当从活动 A 按下后退按钮时,我正在调用 finish() 方法,该方法将完成活动 A 并关闭应用程序。之后,如果我从所有应用程序中打开应用程序,Constants.java 中有一个变量,其值从上次启动时仍然存在。当我在活动 A 中执行 System.exit(10) 后跟 Process.killProcess(Process.myPid()) 时,同样的事情不会发生(在后按时)。
问题:
- 通过调用每个活动的finish()来完成所有活动是否会关闭应用程序(其进程)?
- 即使变量的所有活动都已完成(关闭),变量的值如何保持不变?
- 调用
System.exit(10)后跟Process.killProcess(Process.myPid())退出应用程序是否公平?
更新:
如何在应用程序退出时清除应用程序常量(返回 HomeActivity)?
【问题讨论】:
-
常量根据定义不会改变,那么为什么还要费心清除它们呢?
-
简单:不要打电话给
System.exit()(根本不推荐,正如在SO上讨论的那样)。只需在 HomeActivity 完成后清除变量即可。
标签: android android-activity process