Java 正在停止主线程的处理程序
我正在尝试使用一个处理程序来允许在处理器密集型任务完成之前加载应用程序的ui。我尝试过使用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);
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被发布到主线程,这就是正在发生的事情。