我创建了一个对话框活动,当我的应用程序从云端收到消息时会弹出,提示用户采取行动(按是/否)。但是如果同时有通知,则新的对话意图与第一个重叠,如果用户选择是/否,则启动第3个活动,第一个对话框丢失。
有没有办法检查我的对话意图是否已经开始?所以我可以在开始显示完整消息的第3个活动之前返回第一个对话框?
问候!
答案 0 :(得分:0)
您应该做的是在ParentActivity中保存该DialogActivity的实例,并在收到通知时检查DialogActivity是否为null。
示例:强>
if(mDialogActivity == null){
//toDo
}
或者,您可以使用一个布尔值来检查Activity是否正在运行:
public static boolean isActive = false;
在onStart / onStop方法中将其设置为true / false。
然后,您可以检查活动是否正在运行:
if(mDialogActivity != null && mDialogActivity.isActive){
//toDo
{
答案 1 :(得分:0)
您可以创建一个static boolean
,其中包含所有消息读取状态以及显示的对话框数的索引,因此,当该数字达到零时,boolean
变为true
,然后可以显示第三个活动:
public static boolean all_msg_read = true;
public static int msgs_num = 0;
// So, when a dialog displayed
public void display_dialog(){
all_msg_read = false;
msgs_num ++;
// display the dialog
// provide an onClickListener to the dialog buttons, let's suppose it's called button_pressed
}
public onClickListener button_pressed = new onClickListener(){
@Override
public void onClick(View v) {
// do whatever processing you want
msgs_num --;
if(msgs_num == 0){
all_msg_read = true;
// launch the 3rd activity
}
}
};