android:暂停(关闭)应用程序,使其在相同状态下重新打开

android:暂停(关闭)应用程序,使其在相同状态下重新打开,android,android-activity,destroy,onkeydown,Android,Android Activity,Destroy,Onkeydown,我有一个应用程序,记录一些数据(时间,用户的gps位置等)。现在我想实现这一点:当用户按下后退键时,我弹出一个alertdialog,其中有两个选项“暂停”或“退出”。我可以通过重写onKeyDown方法来实现这一点。现在“退出”应该意味着关闭应用程序并停止数据记录。“暂停”意味着用户可以关闭应用程序几分钟,然后在完全相同的点重新打开时继续 我做了一些研究,但我在很多方面感到困惑: 1) 我能保证活动暂停而不被破坏吗?此外,finish()会破坏活动。是否有某种方法可以通过编程方式暂停它 2)

我有一个应用程序,记录一些数据(时间,用户的gps位置等)。现在我想实现这一点:当用户按下后退键时,我弹出一个alertdialog,其中有两个选项“暂停”或“退出”。我可以通过重写onKeyDown方法来实现这一点。现在“退出”应该意味着关闭应用程序并停止数据记录。“暂停”意味着用户可以关闭应用程序几分钟,然后在完全相同的点重新打开时继续

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

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

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

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


提前感谢您的任何澄清

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

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

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


我不是安卓的高手,但我希望这个答案能对你的问题有所启发;)

重复问题。您不能调用onPause或onResume。系统将此作为活动生命周期的一部分进行。是的,但是如果你想在这一部分做其他事情,你可以覆盖它,或者可能我弄错了?但是既然我覆盖了“onkeydown”方法来实现警报对话框,那么在用户选择做什么之后,应用程序应该如何关闭呢?我调用finish()方法,我认为它会破坏活动。如果我不调用它,则应用程序未关闭