2011-11-16 43 views
-1

我有一個產生線程的Android服務。此線程等待網絡數據,並在收到該數據後,我想顯示確定取消對話框。顯示ok取消對話框通過線程

我得到異常不能創建句柄,應該有Looper.prepare()。我加了Looper.prepare()Looper.loop()然後現在我沒有得到任何異常,但它無限等待。

+1

請顯示代碼和logcat錯誤。 –

回答

0

您可以通過使用處理像下面的代碼

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 
     } 
    }; 
1

而不是使用單一線程最好是使用的AsyncTask這也是調用UI線程(顯示警告對話框)在非UI線程針對Android的speacialized線程。

您可以等待AsyncTask的doInBackGround方法中的數據,並且當您接收到數據時,您可以調用publishProgress(),這將調用onProgressUpdate方法的AsyncTask。

onProgressUpdate可以更新UI,而不會阻塞主線程,也這是在像網絡監聽等

檢查的AsyncTask獲取更多信息和如何使用它的背景做長時間操作的首選方式。

http://developer.android.com/reference/android/os/AsyncTask.html