當我嘗試打開對話框時,出現以下android異常。從服務中調用對話框時出錯Android
09-20 09:27:46.119: W/System.err(558): android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
09-20 09:27:46.139: W/System.err(558): at android.view.ViewRoot.setView(ViewRoot.java:440)
09-20 09:27:46.139: W/System.err(558): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:181)
09-20 09:27:46.139: W/System.err(558): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:95)
09-20 09:27:46.139: W/System.err(558): at android.app.Dialog.show(Dialog.java:269)
09-20 09:27:46.139: W/System.err(558): at android.app.AlertDialog$Builder.show(AlertDialog.java:907)
我打電話從服務的Android對話框,然後我嘗試下面的代碼:
handler.post(new Runnable() {
public void run() {
try{
new AlertDialog.Builder(getApplicationContext()).setTitle("Alert!").setMessage("SIMPLE MESSAGE!").setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
}).show();
} catch(Exception ex){
ex.printStackTrace();
}
}
});
如果我用這個來代替getApplicatonContext()這個問題電源。也許是因爲我從Service調用對話框。 – GVillani82
檢查http://stackoverflow.com/a/9670742/1434631 – Nermeen
您的廣播接收器將捕獲將重定向到服務的意圖,然後您的服務將調用顯示對話框的活動。 BroadCast接收器 - >服務 - >活動 我需要更多的detalis :( – GVillani82