我正在查看其他人在 Android 中编写的一些代码。他们连接了一个 onclick 侦听器,并在其中放置一些代码以将可运行文件发布到运行主循环器的处理程序。像这样:
Handler handler = new Handler(Looper.getMainLooper());
...
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
handler.post(new Runnable() {
public void run() {
//code
}
});
}
});
对我来说,这看起来完全是浪费时间,因为 onClickListener 和 Handler 都在主/UI 线程上运行。有什么可以想象的理由这样做吗?
编辑:让我提供更多细节......
Handler handler = new Handler(Looper.getMainLooper());
...
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
handler.post(new Runnable() {
public void run() {
someListener.onComplete();
((ViewGroup) ((Activity) getContext()).getWindow().getDecorView()).removeView(someFrame);
}
});
}
});