Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
运行AsyncTask时出现活套错误? 05-18 17:53:35.318:WARN/System.err(474):java.lang.RuntimeException:无法在未调用Looper.prepare()的线程内创建处理程序 05-18 17:53:35.349:WARN/System.err(474):位于android.os.Handler.(Handler.java:121) 05-18 17:53:35.349:WARN/System.err(474):在android.app.Dialog.(Dialog.java:101) 05-18 17:53:35.358:WARN/System.err(474):在android.app.AlertDialog.(AlertDialog.java:63) 05-18 17:53:35.358:WARN/System.err(474):在android.app.ProgressDialog.(ProgressDialog.java:80) 05-18 17:53:35.377:WARN/System.err(474):在android.app.ProgressDialog.(ProgressDialog.java:76) 05-18 17:53:35.377:WARN/System.err(474):位于com.Utils.SProgress.StartProgress(SProgress.java:42) 05-18 17:53:35.387:WARN/System.err(474):在com.FindMe.displaytams$asycast.onpreecute(displaytams.java:880) 05-18 17:53:35.400:WARN/System.err(474):位于android.os.AsyncTask.execute(AsyncTask.java:391) 05-18 17:53:35.400:WARN/System.err(474):位于com.FindMe.DisplayAtms.LoadFunction(DisplayAtms.java:141) 05-18 17:53:35.408:WARN/System.err(474):位于com.FindMe.MyApplication$AsyncATMS.doInBackground(MyApplication.java:207) 05-18 17:53:35.419:WARN/System.err(474):位于com.FindMe.MyApplication$AsyncATMS.doInBackground(MyApplication.java:1) 05-18 17:53:35.419:WARN/System.err(474):在android.os.AsyncTask$2.call(AsyncTask.java:185) 05-18 17:53:35.427:WARN/System.err(474):在java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 05-18 17:53:35.438:WARN/System.err(474):位于java.util.concurrent.FutureTask.run(FutureTask.java:137) 05-18 17:53:35.438:WARN/System.err(474):位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068) 05-18 17:53:35.447:WARN/System.err(474):位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561) 05-18 17:53:35.458:WARN/System.err(474):位于java.lang.Thread.run(Thread.java:1096)_Android - Fatal编程技术网

运行AsyncTask时出现活套错误? 05-18 17:53:35.318:WARN/System.err(474):java.lang.RuntimeException:无法在未调用Looper.prepare()的线程内创建处理程序 05-18 17:53:35.349:WARN/System.err(474):位于android.os.Handler.(Handler.java:121) 05-18 17:53:35.349:WARN/System.err(474):在android.app.Dialog.(Dialog.java:101) 05-18 17:53:35.358:WARN/System.err(474):在android.app.AlertDialog.(AlertDialog.java:63) 05-18 17:53:35.358:WARN/System.err(474):在android.app.ProgressDialog.(ProgressDialog.java:80) 05-18 17:53:35.377:WARN/System.err(474):在android.app.ProgressDialog.(ProgressDialog.java:76) 05-18 17:53:35.377:WARN/System.err(474):位于com.Utils.SProgress.StartProgress(SProgress.java:42) 05-18 17:53:35.387:WARN/System.err(474):在com.FindMe.displaytams$asycast.onpreecute(displaytams.java:880) 05-18 17:53:35.400:WARN/System.err(474):位于android.os.AsyncTask.execute(AsyncTask.java:391) 05-18 17:53:35.400:WARN/System.err(474):位于com.FindMe.DisplayAtms.LoadFunction(DisplayAtms.java:141) 05-18 17:53:35.408:WARN/System.err(474):位于com.FindMe.MyApplication$AsyncATMS.doInBackground(MyApplication.java:207) 05-18 17:53:35.419:WARN/System.err(474):位于com.FindMe.MyApplication$AsyncATMS.doInBackground(MyApplication.java:1) 05-18 17:53:35.419:WARN/System.err(474):在android.os.AsyncTask$2.call(AsyncTask.java:185) 05-18 17:53:35.427:WARN/System.err(474):在java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 05-18 17:53:35.438:WARN/System.err(474):位于java.util.concurrent.FutureTask.run(FutureTask.java:137) 05-18 17:53:35.438:WARN/System.err(474):位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068) 05-18 17:53:35.447:WARN/System.err(474):位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561) 05-18 17:53:35.458:WARN/System.err(474):位于java.lang.Thread.run(Thread.java:1096)

运行AsyncTask时出现活套错误? 05-18 17:53:35.318:WARN/System.err(474):java.lang.RuntimeException:无法在未调用Looper.prepare()的线程内创建处理程序 05-18 17:53:35.349:WARN/System.err(474):位于android.os.Handler.(Handler.java:121) 05-18 17:53:35.349:WARN/System.err(474):在android.app.Dialog.(Dialog.java:101) 05-18 17:53:35.358:WARN/System.err(474):在android.app.AlertDialog.(AlertDialog.java:63) 05-18 17:53:35.358:WARN/System.err(474):在android.app.ProgressDialog.(ProgressDialog.java:80) 05-18 17:53:35.377:WARN/System.err(474):在android.app.ProgressDialog.(ProgressDialog.java:76) 05-18 17:53:35.377:WARN/System.err(474):位于com.Utils.SProgress.StartProgress(SProgress.java:42) 05-18 17:53:35.387:WARN/System.err(474):在com.FindMe.displaytams$asycast.onpreecute(displaytams.java:880) 05-18 17:53:35.400:WARN/System.err(474):位于android.os.AsyncTask.execute(AsyncTask.java:391) 05-18 17:53:35.400:WARN/System.err(474):位于com.FindMe.DisplayAtms.LoadFunction(DisplayAtms.java:141) 05-18 17:53:35.408:WARN/System.err(474):位于com.FindMe.MyApplication$AsyncATMS.doInBackground(MyApplication.java:207) 05-18 17:53:35.419:WARN/System.err(474):位于com.FindMe.MyApplication$AsyncATMS.doInBackground(MyApplication.java:1) 05-18 17:53:35.419:WARN/System.err(474):在android.os.AsyncTask$2.call(AsyncTask.java:185) 05-18 17:53:35.427:WARN/System.err(474):在java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 05-18 17:53:35.438:WARN/System.err(474):位于java.util.concurrent.FutureTask.run(FutureTask.java:137) 05-18 17:53:35.438:WARN/System.err(474):位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068) 05-18 17:53:35.447:WARN/System.err(474):位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561) 05-18 17:53:35.458:WARN/System.err(474):位于java.lang.Thread.run(Thread.java:1096),android,Android,我的代码 05-18 17:53:35.318: WARN/System.err(474): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() 05-18 17:53:35.349: WARN/System.err(474): at android.os.Handler.<init>(Handler.java:121) 05-1

我的代码

05-18 17:53:35.318: WARN/System.err(474): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
05-18 17:53:35.349: WARN/System.err(474):     at android.os.Handler.<init>(Handler.java:121)
05-18 17:53:35.349: WARN/System.err(474):     at android.app.Dialog.<init>(Dialog.java:101)
05-18 17:53:35.358: WARN/System.err(474):     at android.app.AlertDialog.<init>(AlertDialog.java:63)
05-18 17:53:35.358: WARN/System.err(474):     at android.app.ProgressDialog.<init>(ProgressDialog.java:80)
05-18 17:53:35.377: WARN/System.err(474):     at android.app.ProgressDialog.<init>(ProgressDialog.java:76)
05-18 17:53:35.377: WARN/System.err(474):     at com.Utils.SProgress.StartProgress(SProgress.java:42)
05-18 17:53:35.387: WARN/System.err(474):     at com.FindMe.DisplayAtms$Asyctast.onPreExecute(DisplayAtms.java:880)
05-18 17:53:35.400: WARN/System.err(474):     at android.os.AsyncTask.execute(AsyncTask.java:391)
05-18 17:53:35.400: WARN/System.err(474):     at com.FindMe.DisplayAtms.LoadFunction(DisplayAtms.java:141)
05-18 17:53:35.408: WARN/System.err(474):     at com.FindMe.MyApplication$AsyncATMS.doInBackground(MyApplication.java:207)
05-18 17:53:35.419: WARN/System.err(474):     at com.FindMe.MyApplication$AsyncATMS.doInBackground(MyApplication.java:1)
05-18 17:53:35.419: WARN/System.err(474):     at android.os.AsyncTask$2.call(AsyncTask.java:185)
05-18 17:53:35.427: WARN/System.err(474):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
05-18 17:53:35.438: WARN/System.err(474):     at java.util.concurrent.FutureTask.run(FutureTask.java:137)
05-18 17:53:35.438: WARN/System.err(474):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
05-18 17:53:35.447: WARN/System.err(474):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
05-18 17:53:35.458: WARN/System.err(474):     at java.lang.Thread.run(Thread.java:1096)
另一个函数()
{
另一个单音进行diloag.hide();
.new asycast().execute();
}
公共类Asyctast扩展异步任务
{
private ProgressDialog=新建ProgressDialog(显示ATM.this);
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
dialog.show();
}
@凌驾
受保护的void onProgressUpdate(最终对象…参数){
super.onProgressUpdate(args);
if((布尔)参数[0]){
Toast.makeText(DisplayAtms.this,args[1].toString(),
Toast.LENGTH_LONG).show();
}
}
@凌驾
受保护的Void doInBackground(Void…arg0){
Log.d(“异步任务”,“arg0”);
出版进度(真实,“sd sdfsdf”);
返回null;
}
}
在signleton类中的另一个对话框停止后,我开始执行此任务,然后我尝试在asyncTask中启动另一个进度对话框
因此,关于PreExecute的第二个对话框“raise looper error any one”指导我如何解决此问题?

您不能在asynctask运行时修改UI-仅在执行前或执行后

如果需要更新ui组件,可以在主类中使用处理程序并将更新发送给该类

Another function()
{

anotherSingletonprogressdiloag.hide();

.new Asyctast().execute();


}




public class Asyctast extends AsyncTask<Void, Object, Void>
    {

     private ProgressDialog dialog = new ProgressDialog(DisplayAtms.this);

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            dialog.show();

        }


       @Override
        protected void onProgressUpdate(final Object... args) {
            super.onProgressUpdate(args);
            if ((Boolean) args[0]) {
                Toast.makeText(DisplayAtms.this, args[1].toString(),
                        Toast.LENGTH_LONG).show();
            }
        }

       @Override
        protected Void doInBackground(Void... arg0) {
             Log.d("Asynctask", ""+arg0);  


                publishProgress(true,"sd sdfsdf");


                return null;

        }

    }
并在ur异步任务中调用以下命令

private final Runnable Example= new Runnable() 
    {
        public void run() 
        {
            try 
            {
                //put ur code which cause the looper error              
            } 
            catch (Exception e) 
            {
                e.printStackTrace();
            }
        }
    };
    private final Handler mHandler = new Handler();**

希望你能理解。

正如对方所说。不能直接使用AsyncTask的doInBackground()方法编辑UI表单。但是您可以使用和来更新UI。因此,您可以坚持AsyncTask概念,而无需显式使用处理程序

你能在这里指导我如何将它移动到处理程序类型的东西吗?是的,对,我得到了它,我在pore execute中使用了rununuithread(exampleRunable),并将代码移动到可运行的位置,这是另一种选择。谢谢
mHandler.post(Example);