我有一个应用程序记录一些数据(时间,用户的GPS位置等)。现在我想实现这个:当用户按下时,我弹出一个alertdialog,有两个选项“暂停”或“退出”。我可以覆盖onKeyDown方法。现在“退出”应该意味着关闭应用程序并停止数据记录。 “暂停”应该意味着用户可以关闭应用程序几分钟,然后当他从完全相同的点重新打开时继续。
我做了一些研究,但我在很多方面感到困惑:
1)我能否以某种方式保证活动暂停而不被破坏?而且,完成()会破坏活动。有没有办法以编程方式暂停它?
2)如果只调用onPause,那么再次打开app时不应该从onResume开始?那么所有的计数器(我通常在onCreate方法中设置为零)应该保持在最后一个状态吗?
3)一种显而易见的方法是在设备数据库中保存计数器等的整个状态,然后在用户重新打开时将其恢复。但它更痛苦,而且最重要的是这是一个很好的做法?
提前感谢您的任何澄清!
答案 0 :(得分:2)
你不能保证活动永远不会被破坏,因为如果系统需要内存或它会自动关闭某些应用程序,但你可以将你的应用程序状态保存在变量“savedinstancestate”中,你可以节省在持久性数据库中,或在SD中。
如果要暂停应用程序,则应调用“onPause”方法,然后调用方法“onResume”,如果这样做,您将能够从上一个状态重新启动应用程序。
如果您想要停止您的应用,只需调用方法“onStop”
我不是Android大师,但我希望这个答案可以为你的问题提供一些启示;)