我試圖將AlertDialog
轉換爲AsyncTask
。我編寫了這個代碼,它的工作原理,但是當我選擇了凍結前AlertDialog
AlertDialog
中的項目但前臺UI正在工作。請幫助我爲我的任務編寫正確的代碼或幫助我請在選擇項目後修復凍結AlertDialog
。我試圖在uiHandler.getLooper.suit()
行之前調用dismiss()
方法,但沒有任何更改。使用AlertDialog處理AsyncTask
@Override
protected Void doInBackground(Void... arg0) {
Looper.prepare();
final Handler uiHandler = new Handler();
uiHandler.post(new Runnable() {
public void run() {
AlertDialog.Builder chooser = new AlertDialog.Builder(ctx);
facultyChooser.setTitle("Choose")
.setCancelable(false)
.setItems(faculties, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int item) {
uiHandler.getLooper().quit();
}
})
.create()
.show();
}
});
Looper.loop();
}
PS:這不是完整的代碼,以方便閱讀。
uiHandler.getLooper()。quit();在onClick中調用。檢查通過刪除.. – Aun 2014-11-05 10:51:32
@Aun,如果我刪除它Looper不會停止。關閉對話框後沒有任何事情發生。 – AskQuestion 2014-11-05 10:58:54