0

我有一个记录一些数据(时间、用户的 GPS 位置等)的应用程序。现在我想实现这个:当用户按下返回时,我会弹出一个警报对话框,其中包含“暂停”或“退出”两个选项。我可以覆盖 onKeyDown 方法来做到这一点。现在“退出”应该意味着关闭应用程序并停止数据记录。“暂停”应该意味着用户可以关闭应用程序几分钟,然后在他从完全相同的位置重新打开时继续。

我做了一些研究,但我在很多方面感到困惑:

1)我能以某种方式保证活动被暂停而不被破坏吗?此外,finish() 会破坏活动。有什么方法可以以编程方式暂停它吗?

2)如果只调用了onPause,那么再次打开应用程序时不应该从onResume开始吗?所以所有的计数器(我通常在 onCreate 方法中设置为零)应该保持在最后一个状态?

3)一种明显的方法是将计数器等的整个状态保存在设备数据库中,然后在用户重新打开时恢复它。但它更痛苦,而且最重要的是这是一个好习惯?

提前感谢您的澄清!

4

1 回答 1

2

你不能保证活动永远不会被破坏,因为如果系统需要内存或者它会自动关闭一些应用程序,但你可以将你的应用程序状态保存在变量“savedinstancestate”中,你可以保存在持久性中数据库,或在 SD 中。

如果你想暂停应用程序,你应该调用“onPause”方法,然后调用“onResume”方法,如果你这样做,你将能够从最后一个状态重新启动你的应用程序。

如果你想停止你的应用程序,只调用方法“onStop”

我不是 Android 的大师,但我希望这个答案可以对你的问题有所了解;)

于 2012-04-07T11:50:14.693 回答