处理程序停止主线程

时间:2018-08-19 21:18:52

标签: java android multithreading optimization

我正在尝试使用处理程序来允许应用程序的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
            }
        });
    }
}

1 个答案:

答案 0 :(得分:0)

在ui线程上执行处理器密集型任务,此处理程序将可运行对象发布到在其上创建的同一线程上,根据代码片段,该线程为ui线程。