【发布时间】:2013-07-27 15:55:06
【问题描述】:
我正在编写一个包含 4 个活动的简单应用程序。我会快速描述它,以便您了解我想要实现的目标。
第一个活动 - MainActivity 有一些 TextEdit 字段,这些字段收集 2 个输入参数 - 代表次数和暂停时间(以秒为单位)。一个按钮将我带到第二个活动: WorkActivity - 所有这一切都是它开始计数,直到我按下“完成”,然后它调用 PauseActivity,或者如果它是最后一个代表,调用 OverviewActivity。 PauseActivity 倒计时直到下一次代表,然后向我发出哔哔声,让我知道时间到了,并再次显示 WorkActivity。 OverviewActivity 显示每个代表的总锻炼时间和时间。
它还有一个按钮,应该只是结束应用程序。我知道退出您的应用程序并不真正符合 Android 应用程序生命周期理念,但我需要它(或类似的事情发生)。 我有一个单例控制器类,可以跟踪代表并记录时间。我可以杀死这个实例(或假装它的死亡,因此将创建一个新实例),但是当我“关闭”应用程序然后再次单击它时,我得到的是 OverviewActivity 而不是预期的 MainActivity。
我希望调用 System.exit(0) 会解决问题,只需关闭应用程序,因此再次运行时必须重新初始化。相反,整个事情开始表现得非常愚蠢。当我单击调用 System.exit(0) 的按钮时,我的应用程序不会消失,而是重新启动。它显示了 WorkActivity,并开始计数。当我单击完成按钮(应该带我到 PauseActivity)时,我得到一个异常。应用程序崩溃 - 然后再次重新启动。这将重复,直到我点击主屏幕按钮,并且应用程序保持这种无用状态,直到我在应用程序管理器中将其杀死。
另外,我不太确定,但我认为 System.exit(0) 调用(或随后的崩溃)会断开调试器,因为之后我无法让 Eclipse 命中任何断点。这意味着我无法真正看到发生的实际异常。
有人可以解释一下吗?有没有办法正确使用 System.exit(0)?
如果没有此选项,处理此问题的正确方法是什么? 我需要该应用程序: - 当我点击最后一个“完成”按钮时,主页按钮或返回按钮,处理控制器,(如果可能的话,还有其他所有东西),停止计数(如果有任何计时器正在运行)并基本上自行关闭) - 当我再次单击应用程序的图标时,向我显示一个新实例(或一个新实例),其中 MainActivity 以问候我以及所有其他处于默认状态的活动。
【问题讨论】:
标签: android android-activity exit