2011-03-13 92 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..... 
    } 
});