如何使AlertDialog在转到其他活动后仍然存在?

How to make the AlertDialog persist even after going to other Activity?(如何使AlertDialog在转到其他活动后仍然存在?)

本文介绍了如何使AlertDialog在转到其他活动后仍然存在?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

任何用户在我的应用程序因会话过期而注销后打开该应用程序时。我同时运行了两个进程,一个是来自SplashScreen的意图维护活动,另一个是在BAseActivity中调用的AlertDialog。因此,假设My AlertDialog当前在SplashScreen上可见,并且某个进程正在后台进行,当它完成时,意图将应用程序带到MainActivity。

问题是我的AlertDialog正在被取消。是否有办法在所有活动中保持AlertDialog?

推荐答案

这是上下文问题,因为对话框使用相同的活动上下文,如果此对话框必须始终位于顶部,则可以使用SYSTEM_ALERT_SERVICELIKE

来完成
public void showCustomAlert(String text){

    final String alertText = text;

    runOnUiThread(new Runnable() {
        @Override
        public void run() {
            AlertDialog.Builder myDialogBox = new AlertDialog.Builder(mContext);
            myDialogBox.setTitle("Alert");
            myDialogBox.setMessage(alertText);
            myDialogBox.setCancelable(false);
            myDialogBox.setPositiveButton("OK", new DialogInterface.OnClickListener(){

                  public void onClick(DialogInterface dialog, int whichButton) {
                         dialog.dismiss();
                  }

            });
            myDialogBox.setNegativeButton("Cancel", new DialogInterface.OnClickListener()
            {
                  public void onClick(DialogInterface dialog, int which) {
                         dialog.dismiss();
                  }
            });
            AlertDialog alertDialog = myDialogBox.create();
                  alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
            alertDialog.show();
       }
    });
    }
管理"android.permission.SYSTEM_ALERT_WINDOW"权限。希望这能解决您的问题。

这篇关于如何使AlertDialog在转到其他活动后仍然存在?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:如何使AlertDialog在转到其他活动后仍然存在?

基础教程推荐