Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.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
Java 正在停止主线程的处理程序_Java_Android_Multithreading_Optimization - Fatal编程技术网

Java 正在停止主线程的处理程序

Java 正在停止主线程的处理程序,java,android,multithreading,optimization,Java,Android,Multithreading,Optimization,我正在尝试使用一个处理程序来允许在处理器密集型任务完成之前加载应用程序的ui。我尝试过使用AsyncTask,但结果更糟 public class MyEditView extends AppCompatEditText { Handler handler; public MyEditView(Context context, AttributeSet attrs) { super(context, attrs); init(context);

我正在尝试使用一个处理程序来允许在处理器密集型任务完成之前加载应用程序的ui。我尝试过使用
AsyncTask
,但结果更糟

public class MyEditView extends AppCompatEditText {
    Handler handler;

    public MyEditView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init(context);
    }
    public MyEditView(Context context) {
        super(context);
        init(context);
    }

    private void init(final Context context) {
        handler = new Handler();
        //Removing handler.post speeds up the load of the activity significantly
        handler.post(new Runnable() {
            @Override
            public void run() {
                Interpreters.ENGLISH.init(context); //Load 133911 line txt file
            }
        });
    }
}

在ui线程外执行处理器密集型任务时,此处理程序将可运行文件发布到创建它的同一线程,根据代码段,该线程是ui线程

看到@cricket_007会很有用吗?这是更好的吗?这就是处理程序的作用,但它不起作用。您可能在主线程上创建了处理程序,所以runnable被发布到主线程,这就是正在发生的事情。