我的应用程序在关闭时保留所有变量值,这会影响重新打开时的运行方式。有什么办法可以在app关闭时重置它们吗?或者有没有办法在内存关闭时从内存中清理它可以这么说?目前我刚刚在最后几行执行中设置了所有重要变量“= 0”,但我知道必须有正确的方法来执行此操作。
编辑:
好的,我认为在这里回复而不是单独回复每个人都会更容易。
该应用确实在后台保持活力,我检查了高级任务杀手。如何通过按下后退按钮将ap设为“Die”?考虑到应用程序的运作方式,我认为这将是最简单的解决方案:
打开应用>按下开始按钮>按停止按钮>结果屏幕>按后退按钮退出。
所以基本上每次app运行都应该是一个独立的执行。
答案 0 :(得分:2)
你的应用可能没有关闭但仍留在后台。检查高级任务管理器,看看应用程序是否正在运行。
答案 1 :(得分:2)
重写onPause,onResume和onDestroy方法。 onPause应该在暂停时保存任何内容,onResume应该在恢复时重新加载这些值,并在应用程序关闭时调用onDestroy。你可以清理onDestroy中的东西。请参阅this链接。
答案 2 :(得分:2)
您需要熟悉Activity Lifecycle。
您可以利用onResume()
重置变量;另请注意onDestory()
和onPause()
。
<强>更新强>
每次应用程序移动到后台时完全杀死应用程序都是反模式。您应该真正查看您的应用程序并遵循上述活动生命周期模式,并采取必要的步骤,以确保您的变量根据您所希望的状态存在。
答案 3 :(得分:1)
我喜欢@Alex和@Jack说的话。要添加,还要考虑如果要强制关闭并返回上一个活动,可以在finish()
中调用Activity
。与此同时,还要考虑使用setResult(int)
(JavaDoc Here)
当您致电Intent
时,您还可以在Activity
上设置一个标记。像 FLAG_ACTIVITY_NO_HISTORY 这样的标志可能会有所帮助:
列表如果设置,则新活动不会保留在历史堆栈中。一旦用户离开它,活动就完成了。这也可以使用noHistory属性设置。
答案 4 :(得分:0)
未初始化的变量很糟糕。不要这样做。在第一次使用变量之前,请务必手动重置变量。
答案 5 :(得分:0)
onResume()方法将允许您在程序恢复时重置变量,但是当您返回活动时也会这样做,除非您在应用程序而不是主页中添加说明您来自的逻辑。也许onRestart()是你真正需要的?我不是肯定的,但是有可能使用onResume。