2011-03-13 54 views
0

我正在學習AsyncTask,我試圖在doInBackground方法中打印Toast消息,是否可以在其中使用Toast消息?代碼運行良好,Toast消息被刪除.. 獲取錯誤,因爲無法創建處理程序()內螺紋已不叫Looper.prepare問題在使用AsyncTask

回答

0

明白了:)

protected class Asyctast extends AsyncTask<String, Integer, Integer> 
{ 

    @Override 
    protected Integer doInBackground(String... params) { 
     // TODO Auto-generated method stub 


     Log.d("Asynctask", ""+params); 
Looper.prepare(); 

     ImageThumbnailsActivity m = new ImageThumbnailsActivity(); 

      Toast.makeText(ImageThumbnailsActivity.this,""+params ,Toast.LENGTH_SHORT).show(); 
      final Dialog dialog_options = new Dialog(ImageThumbnailsActivity.this); 
      dialog_options.setContentView(R.layout.option); 
      dialog_options.show(); 
     Looper.loop(); 
     return null; 

    }  
} 
0

,而你的答案就足夠了,你可能有興趣知道,後面爲什麼你不能敬酒裏面的原因AsyncTask的「doInBackground」。 AsyncTask的目的是在後臺運行一些東西。在你的情況下,你寫的所有代碼都不需要放在後臺線程中。異步任務用於下載/保持永久運行循環等等。如果您真的想要使用AsyncTask並向前臺UI線程注入東西 - 例如吐司 - 那麼您必須獲得對最上面的上下文/活動的引用,並調用:

myContext.runOnUiThread(new Runnable(){ 
    @Override public void run{ 
     Toast..... 
    } 
});