2011-04-01 35 views
7

正如標題所示,我的自定義應用程序類中設置了UncaughtExceptionHandler,該應用程序類在我的應用程序啓動時被設置爲默認值。實例化AlertDialog的Android UncaughtExceptionHandler休息

但是,雖然沒有在文檔中,我已經讀過,您不能使用MyApplication.thisgetApplicationContext()實例化Dialog。當我嘗試這樣做,我得到一個

窗口管理器,$ BadTokenException ...

我需要一個替代方案。我曾想過要做一個新的活動來彌補這一點,但寧可讓它成爲AlertDialog

有沒有一種方法可以從MyApplication類中獲得我的UncaughtExceptionHandler的有效上下文?

回答

8

我已閱讀,你可以不使用MyApplication.this或getApplicationContext

正確實例化一個對話框。應用程序上下文對於構建用戶界面不是特別有用。

我曾想過要做一個新的活動來彌補這一點,但寧願讓它成爲AlertDialog。

在這種情況下AlertDialog是不可能的。對於初學者來說,只有一個活動可以打開一個對話框,並且你的任何活動都不會運行(例如,在後臺服務中崩潰)並且是有效的(例如,你有一個活動,但它是崩潰的活動)。

編輯:固定前一段清理混亂

+0

你能提出替代?如果發生異常,我希望測試此產品的客戶能夠報告反饋。我在尋找的是一個全局未捕獲的異常掛鉤,它會詢問他們是否想向我們發送報告。 – 2011-04-01 22:16:04

+4

@Tom Fobear:對不起,剛纔意識到我的回答有點過於寬泛。你可以開始一個活動就好了;你不能彈出你自己的對話框。使用對話爲主題的活動,你應該沒問題。但請記住,您的後臺線程應該有自己的無聲未捕獲異常處理程序,因爲您不希望在不知所措的情況下彈出活動。 – CommonsWare 2011-04-01 22:42:34

+0

多數民衆贊成,這就是我需要的所有信息。謝謝。 – 2011-04-01 22:49:51