将当前活动置于最前面时,不会显示“警报对话框”

时间:2018-07-30 03:52:01

标签: android android-alertdialog

在这种情况下,当当前运行的AlertDialog出现在前面时,我必须显示Activity

仅当当前运行的活动是Activity堆栈中的第一个活动时才显示,否则不会显示。

我的直觉是,这与当前的Context有关,后者被传递来创建AlertDialog

有什么建议吗?

-编辑-

代码看起来像这样,像往常一样创建警报对话框。

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();

3 个答案:

答案 0 :(得分:0)

See the lifecycle image

上面的图片描述了很多情况。:活动启动时,调用onCreate()方法的最初且只有一次。然后,它调用onStart(),依此类推。 您的问题不清楚。 我想,您在首次调用alertDialog方法时启动了包含onCreate()的活动。如果在此方法中调用alertDialog,则会弹出它。但是,如果您在不破坏另一个活动的情况下启动了另一个活动,则该活动将进入后台,但仍在运行(以onPause()模式运行)。当您完成新活动并返回目标活动时,它现在将调用onResume()方法而不是onCreate(),因为由于已经创建了活动,因此不需要该方法。但是肯定会在销毁活动之后调用它。因此,从另一项活动回来后,您可以使用onResume()来呼叫alertDialog

答案 1 :(得分:0)

也可以在OnResume()方法和onStart()方法中应用AlertDialog代码,您会很高兴。 祝你好运:)

答案 2 :(得分:0)

对于我来说,您的对话框代码没有显示对话框,我更改代码并运行它,使其正常运行,

我认为这段代码对您有所帮助。

        AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
        alertDialog.setTitle("Title");
        alertDialog.setMessage("MEssage");

//        AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
//        AlertDialog alertDialog = alertDialogBuilder.create();
        alertDialog.show();