2011-08-03 8 views
1

私はいずれのアプリケーション(またはアクティビティ)にもバインドされていない背景を持っています(Service)。それは着信メッセージを監視しています。メッセージを受け取ると、1つのダイアログポップアップを表示する必要があります。私は、警告ダイアログを表示するためのメソッドを定義しようとしましたが、例外があります。"Can't create handler inside thread that has not called Looper.prepare()" この問題を解決する方法はありません。私はここでこのような多くの記事を検索しましたが、この問題を解決する方法はありません。ヘルプは非常に感謝します。ありがとう。バックグラウンド実行中のサービスからアラートダイヤログ(ポップアップ)を表示するにはどうすればいいですか?

+0

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

答えて

2

これとは別にハンドラを作成します。

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); 

第二でとりうるソリューションです:

は、次の内のコードを呼び出すあなたの方法を置く:

runOnUiThread(new Runnable(){ 

public void run(){ 

//Call the method here 
} 

}); 

希望これは

おかげ シャー

+0

まだ「Looper.prepare()」を呼び出していないスレッド内でハンドラを作成できません。私はルーパーのコンセプトを取得していない、あなたは私を助けることができますか? –

+0

あなたは両方の方法を試しましたか?????私の側にrunOnUIThread()が完璧に正常に動作する遅い返信 – Shah

+0

の申し訳ありません...あなたはそれを試してください – Shah

0

質問が繰り返される可能性がありますことができます

あなたがバックグラウンドサービスからダイアログを開きたい場合は、あなたが行うことはできませんが、あなたは、リンク

android:chat app popup view

の下に従わ詳細およびコード

のためのサービスからダイアログとしてあなたの活動を開くことができる方法はあり

関連する問題