【发布时间】:2017-02-15 02:27:42
【问题描述】:
我有一个通知,其中有两个按钮。因此,当用户单击此通知(不是在通知中的按钮上,而是直接在通知上)时,它会启动主屏幕。
在我的主屏幕中,我显示了一个对话框,它提供了与通知中所示相同的选项。
当用户与对话交互,然后点击主屏幕上的某个按钮时,它会启动一个新的活动。
当用户从已启动的新活动中按下后退按钮时。它返回到主屏幕。
现在我面临的问题是,当它回到主 Activity(Activity 1) 时,它再次显示该对话框,因为它使用的 Intent 与从通知启动主屏幕的 Intent 相同
我不希望该对话再次显示,因为用户已经与该对话进行了交互。我该如何处理?
这就是我的 onStart 的样子。
@Override
protected void onStart() {
super.onStart();
String action = getIntent.getAction();
Log.d("MainScreen", "onStart: action " + action);
if(action.equals(NOTIFICATION_CLICK)){
showDialogue();
}
}
【问题讨论】:
-
将值保存在 sharedPreference 中
-
框架没有其他办法了吗?
-
如果您想将其保存在本地缓存中,则根本不使用静态变量(true,false),但这是不好的做法。你必须使用 sharedPreference
-
您在主屏幕中的哪个方法显示了对话框(onCreate、onStart 或 onResume)?我猜你在 onResume 中显示了对话框。因为当我们单击返回按钮时,不会调用 onCreate。您是否尝试将对话框显示方法放在 onCreate 方法中?
-
@LuongDinh 我正在调用 onResume,我尝试将其移至 onStart。但是,按下返回时仍然显示对话框
标签: android android-intent notifications onbackpressed