我希望在应用打开时弹出通知。但是一旦用户解散,我不希望它再次回来,即使他们回到相同的活动。但是当应用程序退出并且稍后再回来时,我希望弹出相同的对话框通知(提示用户登录)。
所以基本上......
boolean b = true;
if (b == true) {
// show dialog
b = false;
}
我只想让var b保存状态,但在退出时清除。
答案 0 :(得分:1)
我不确定如果你不希望这个值在你的应用程序被关闭的情况下继续使用共享首选项,那就不一定了,因为这就是它们的重点。
也许只在Application类中使用布尔值会更好?在应用程序完全关闭之前,它会持续存在。
答案 1 :(得分:1)
android没有“app exit”的概念,只有android生命周期,因此你必须更加具体地了解你想要的行为。例如,您是否意味着每当用户导致您的应用中的任何活动暂停且您的应用中没有活动可以恢复时?
如果您只有一个活动,那么您可以在活动中将状态变量设置为暂停时为false,恢复时为true。
如果你有> 1活动,那么跟踪你的活动何时不再是前台是痛苦的。例如,如果您在活动暂停时设置foreground = false,并在每次恢复时设置foreground = true,然后检查时间容差。例如,如果暂停和恢复之间的时间大于某个阈值,则假设您从后台返回。
答案 2 :(得分:0)
您不想使用SharedPrefs,除非他们使用按钮或其他某个侦听器退出应用程序,您无法确定更改它。如果你想确保它被重置,你可以把它放在onDestroy()中来重置变量或onPause()更好