我有一個活動,在後臺顯示進度對話框時從互聯網獲取一些數據。當我得到數據(或錯誤)時,我忽略該對話框並顯示另一個對話框。Activity.showDialog當活動可能不在前臺
如果由於某些原因網站花費太長時間來提供響應(例如15秒以上),手機將關閉屏幕。現在,當屏幕關閉時,如果我得到響應並嘗試顯示對話框,將會出現錯誤(WindowManager $ BadTokenException:無法添加窗口 - 令牌[email protected]無效;是您的活動運行?)
這個問題的原因很簡單:當屏幕關閉時,另一個活動來到前臺(keyguard或其他)。
問:現在,什麼對我們知道可能沒有運行活動調用的ShowDialog最好的方法是什麼? (活動已創建,但不是用戶正在與之交互的那個人......換句話說,它處於停止狀態)。
我相信如果我點擊home並更改爲Home活動,也會發生類似的行爲。 (雖然我不能在我的特殊情況下做到這一點,因爲我的活動會取消請求,一切都會正確關閉)。
我不認爲這有什麼差別,但是在我的Android轉載此2.1
可能希望在`onPause,onResume,onDestroy,onStop`方法中放置一些代碼。這樣,如果在線程完成之前調用「onPause」(或任何可能的內容),並且在完成之前不調用「onResume」,則會知道啓動線程的活動的狀態 - 並知道是否你可以顯示一個對話框 – binnyb 2010-12-22 21:18:59
但我想顯示對話框。如果活動沒有被用戶看到,當他回到我的活動時,我希望它顯示對話框... – 2010-12-22 21:33:42