我有一個產生線程的Android服務。此線程等待網絡數據,並在收到該數據後,我想顯示確定取消對話框。顯示ok取消對話框通過線程
我得到異常不能創建句柄,應該有Looper.prepare()
。我加了Looper.prepare()
和Looper.loop()
然後現在我沒有得到任何異常,但它無限等待。
我有一個產生線程的Android服務。此線程等待網絡數據,並在收到該數據後,我想顯示確定取消對話框。顯示ok取消對話框通過線程
我得到異常不能創建句柄,應該有Looper.prepare()
。我加了Looper.prepare()
和Looper.loop()
然後現在我沒有得到任何異常,但它無限等待。
您可以通過使用處理像下面的代碼
new Thread(new Runnable()
{ public void run()
{
try {
///do your stuff in
mHandlerShowDialog.post(mUpdateShowDialog);
///do your struff
}
}).start();
final Handler mHandlerShowDialog= new Handler();
final Runnable mUpdateShowDialog = new Runnable() {
public void run() {
// show your dialog here
}
};
而不是使用單一線程最好是使用的AsyncTask這也是調用UI線程(顯示警告對話框)在非UI線程針對Android的speacialized線程。
您可以等待AsyncTask的doInBackGround
方法中的數據,並且當您接收到數據時,您可以調用publishProgress()
,這將調用onProgressUpdate
方法的AsyncTask。
在onProgressUpdate
可以更新UI,而不會阻塞主線程,也這是在像網絡監聽等
檢查的AsyncTask獲取更多信息和如何使用它的背景做長時間操作的首選方式。
http://developer.android.com/reference/android/os/AsyncTask.html
請顯示代碼和logcat錯誤。 –