在恢复活动时阻止多次打开对话框

tho*_*aus 6 android android-lifecycle android-dialog

在我的Android应用程序中,为了询问用户他/她是否想要恢复当前游戏,我在主游戏活动中显示一个对话框,说"你想恢复当前游戏吗?是 - 否".

问题是,如果我在没有回答对话的情况下不同时间恢复此活动,那么我会得到几个对话框,这显然不是我的目标.

我可以使用布尔var轻松避免这种行为,但我想知道Dialog类是否有一种防止重复或类似的选项.

Can*_*ner 6

你可以使用单例模式,可以大致如下:

Dialog myDialog = null;


public void showDialog() {
    if(myDialog == null) {
        /* show your dialog here... */
        myDialog = ...
    }
}


public void hideDialog() {
    if(myDialog != null) {
        /* hide your dialog here... */
        myDialog = null;
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 嗨萨姆面临同样的问题,但我使用alertdialogbuilder创建对话框,任何解决方案.. ?? (2认同)

小智 5

private Dialog mDialog;

private void showDialog(String title, String message) {
    AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this)
            .setTitle(title)
            .setMessage(message);

    // Dismiss any old dialog.
    if (mDialog != null) {
        mDialog.dismiss();
    }

    // Show the new dialog.
    mDialog = dialogBuilder.show();
}
Run Code Online (Sandbox Code Playgroud)