我有一個服務運行後臺線程。我想要做的是 顯示AlertDialog從我的後臺線程啓動。我知道 這不是推薦的通知用戶的方式,而且它會中斷工作流程(因爲他們可以在任何應用程序中彈出任何 時間),但這對我的用例來說是一種合適的方式。AlertDialog.show在服務中默默忽略
有一個處理程序註冊後臺線程並顯示 Toast通知與處理程序工作正常。但是在將 切換到AlertDialog之後,什麼也沒有發生。我的showDialog邏輯是 默默忽略。沒有對話窗口出現,沒有日誌條目。這有點 奇怪,因爲我期望至少有一個日誌條目說我在做 有什麼不對或什麼的。
顯示從 服務後臺線程發起的AlertDialog是否有任何限制?有些人似乎推薦使用Dialog主題 活動來獲得類似的行爲。
任何澄清或幫助使其工作非常感謝!
伊夫
這似乎是訣竅。顯然,它也有可能在onCreate方法中顯示AlertDialog。唯一的問題是我們需要開始一個新的任務,這意味着我們有新的活動堆棧,並用DialogActivity完成對話。這個.finish()不會回到我的最後一個任務。有沒有已知的解決方法來獲得這種行爲? – Yves 2010-11-10 20:28:51
我的方法有什麼問題?當你退出它會回不去? – Emmanuel 2010-11-10 21:03:15
你的方法是完全正確的。我的應用程序捆綁了服務和控制器活動來啓動/停止它。例如,我通過控制器活動啓動服務,導航到瀏覽器,然後彈出AlertDialog對話框。到現在爲止還挺好。現在,當關閉對話框(DialogActivity.this.finish();)時,我期望回到瀏覽器,但控制器活動會出現。這裏的解決方案是使用android:taskAffinity =「」屬性標記清單中的活動,使其完全獨立於控制器活動並獲得自己的空棧。 – Yves 2010-11-10 21:36:05