Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-getBaseContext使用Toast vs.Dialog_Android_Android Dialog_Android Toast - Fatal编程技术网

Android-getBaseContext使用Toast vs.Dialog

Android-getBaseContext使用Toast vs.Dialog,android,android-dialog,android-toast,Android,Android Dialog,Android Toast,我在应用程序外展示祝酒词 我用吐司做的很好: Toast.makeText(getBaseContext(),"Text").show(); 但是当我尝试使用Dialog时,我返回一个 final Dialog dialog_edu = new Dialog(getBaseContext()); dialog_edu.setTitle("Choose Action"); dialog_edu.show(); 它返回以下内容:

我在应用程序外展示祝酒词

我用吐司做的很好:

  Toast.makeText(getBaseContext(),"Text").show();
但是当我尝试使用Dialog时,我返回一个

        final Dialog dialog_edu = new Dialog(getBaseContext());
        dialog_edu.setTitle("Choose Action");       
        dialog_edu.show();
它返回以下内容:

 01-28 18:02:04.734: W/WindowManager(329): Attempted to add window with non-application token WindowToken{41c01dd8 token=null}.  Aborting.
 01-28 18:02:04.734: E/AndroidRuntime(2626): FATAL EXCEPTION: main
 01-28 18:02:04.734: E/AndroidRuntime(2626): android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
如果我在上下文中使用“MyAcitivity.this”,它在应用程序中起作用,但在我离开应用程序时不起作用。另一方面,Toast在应用程序内部和外部工作

我已经读到,您可以使用:getActivity()和其他,但在当前状态下,它返回相同的错误

如果我使用一个处理程序并尝试延迟对话框的构建,它在1整秒的延迟时间内没有任何效果


那么,如何让对话框在应用程序内外工作。

您可能缺少
()
。那就是,

final Dialog dialog_edu = new Dialog(getBaseContext());
使用getParent()而不是getBaseContext()

否则,请按以下方式使用。因为这个问题是时间问题

Context=getBaseContext(); 新对话(上下文)

尝试以上两种方法::-)

那么,如何让对话框在应用程序内外工作呢

您可以创建一个以对话框为主题的活动


不能在具有任何旧上下文的活动之外显示标准对话框。尽管对话框构造函数只需要一个上下文,但它实际上需要一个活动,可能是为了将自己附加到活动的窗口。Toast没有此限制,因此您可以使用任何上下文。

可能重复的“我会说不”-我已经阅读了该线程。他的问题要简单得多——我试图在应用程序之外显示一个对话框。还有,人们在这里建议的所有东西对我在LogCat中得到的错误没有影响。你不能在没有窗口的地方显示对话框:@zapl你能解释一下我的问题吗,如何从我的状态继续?如果您在
应用程序
服务
中,并且希望显示对话框,则必须启动显示该对话框的活动。另一方面,这也不好,因为你可以用这种方式打断用户,因为即使用户已经离开你的应用程序并正在做其他事情(例如来电),活动也会显示出来。不,这是我在帖子中的错误。我会改变的。