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