2014-04-22 58 views
3

我知道這可能在此之前討論過。但是,如果我使用getApplicationContext()來顯示Dialog,我仍然感到困惑。使用getApplicationContext()顯示對話框 - BadTokenException:無法添加窗口

我有一個應用程序,它使用getApplicationContext()來創建AlertDialog.Builder,並且應用程序崩潰時,對話框顯示。但如果我使用SomeActivity.this上下文,它工作正常。

注意:這個應用程序在Play商店已經有一段時間了,之前在工作,但不知道從哪個Android版本崩潰。

崩潰堆棧跟蹤

android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application 
     at android.view.ViewRootImpl.setView(ViewRootImpl.java:540) 
     at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:259) 
     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69) 
     at android.app.Dialog.show(Dialog.java:286) 
     at android.app.AlertDialog$Builder.show(AlertDialog.java:951) 

回答

13

但我仍然感到困惑,如果我使用getApplicationContext()來顯示一個對話框,會發生什麼。

你炸燬了。

但是,如果我使用SomeActivity.this上下文它工作正常。

正確。 A DialogActivity所有。 You cannot use an Application, Service, or other Context to show a Dialog。但請注意,您可以使用任何Context開始以對話爲主題的活動。

,但不知道從哪個Android版本這個崩潰

的Android 1.0,因爲據我所知。

相關問題