2011-08-03 19 views
1

我有一個背景Service不綁定到任何應用程序(或活動)。它監視傳入的消息,並在接收消息時,我必須顯示一個對話框彈出窗口。我試着定義了一種用於顯示警告對話框的方法,但是它給出了例外情況:"Can't create handler inside thread that has not called Looper.prepare()" 我真的不知道如何解決這個問題。我在這裏搜索了很多這樣的帖子,但沒有得到如何解決這個問題。幫助高度讚賞。謝謝。如何從後臺運行服務中顯示警報對話框(彈出窗口)?

+0

https://stackoverflow.com/a/29804684/2149195 – RBK

回答

2

單獨創建一個Handler,像這樣。

private Handler handler = new Handler() { 
@Override 
public void handleMessage(Message msg) { 

//Call you method in This one... 
displayDialog(); or whatever method name is 
} 
}; 

現在您正在調用displayDialog()方法或任何曾經命名的對話框。替換下面的代碼。

handler.sendEmptyMessage(0); 

2日更多鈔票的解決方案是:

把你方法調用以下內碼:

runOnUiThread(new Runnable(){ 

public void run(){ 

//Call the method here 
} 

}); 

希望這有助於

感謝 沙阿

+0

仍然im異常爲「不能創建處理程序內部沒有調用Looper.prepare()」的線程。我沒有獲得Looper的概念,你能幫助我嗎? –

+0

你是否嘗試過這兩種方法?並抱歉在我身邊延遲迴復 – Shah

+0

runOnUIThread()工作完全正常...你應該嘗試 – Shah

0

可能是重複的問題

如果要打開從後臺服務對話框,那麼你不能做,但有可以打開從服務對話框的活動

按照以下鏈接的詳細信息和代碼的方式

android:chat app popup view

相關問題