我有一个记录一些数据(时间、用户的 GPS 位置等)的应用程序。现在我想实现这个:当用户按下返回时,我会弹出一个警报对话框,其中包含“暂停”或“退出”两个选项。我可以覆盖 onKeyDown 方法来做到这一点。现在“退出”应该意味着关闭应用程序并停止数据记录。“暂停”应该意味着用户可以关闭应用程序几分钟,然后在他从完全相同的位置重新打开时继续。
我做了一些研究,但我在很多方面感到困惑:
1)我能以某种方式保证活动被暂停而不被破坏吗?此外,finish() 会破坏活动。有什么方法可以以编程方式暂停它吗?
2)如果只调用了onPause,那么再次打开应用程序时不应该从onResume开始吗?所以所有的计数器(我通常在 onCreate 方法中设置为零)应该保持在最后一个状态?
3)一种明显的方法是将计数器等的整个状态保存在设备数据库中,然后在用户重新打开时恢复它。但它更痛苦,而且最重要的是这是一个好习惯?
提前感谢您的澄清!