获得了java.lang.RuntimeException:无法里面)线程已经不叫Looper.prepare(创建处理程序

问题描述:

我试图从runonUiThread 调用的AsyncTask像下面获得了java.lang.RuntimeException:无法里面)线程已经不叫Looper.prepare(创建处理程序

MutiThreadActivity.this.runOnUiThread(new Runnable() { 
    public void run() { 
     Toast.makeText(MutiThreadActivity.this, "This is Toast!!!", Toast.LENGTH_SHORT).show(); 
     new backgroundTask(mcon).execute(); 
    } 
}); 

但doInBackground时,则不会调用java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()

任何一个建议我在哪里,我在做我wrong.How可以在android系统调用Asyntask从RunonUithread方法?

在此先感谢。

+0

'new backgroundTask(mcon).execute();'这里是问题...可能是你在'backgroundTask'的doInBackground中调用tost或任何UI元素异步任务..你可以显示'backgroundTask' AsyncTask类的代码。 –

不要使用asycnc任务,而是使用处理程序或定时器,它给你分离线程的错觉,通过在消息队列中发布一段时间后读取关于处理程序,它是简单apporch

+0

感谢您的快速回复。请给我任何关于此回答的代码。 – Pinki

+0

Handler handler = new Handler(); handler.postDelay(新的Runnable(){ 公共无效的run(){ Toast.makeText(MutiThreadActivity.this, “这是吐司!!!”,Toast.LENGTH_SHORT).show(); }} , 1000); –

+0

当我添加服务器通信代码里面的处理程序正在获取“android.os.NetworkOnMainThreadException”“ – Pinki