今天在写一个监听事件的时候发现
事件内部第一行的开启线程居然是最后一个启动的
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final AddThread addThread = new AddThread(); //step1
addThread.start();
Bundle bundle = new Bundle();
bundle.putString(“a”,“a”);
Message message = new Message();
message.setData(bundle); //step2
addThread.handler.sendMessage(message);//step3
}
}
启动顺序 step2–>step3–>step1 然后自然就报错了
有哪位大佬知道为什么吗
在次实验了一下
final AddThread addThread = new AddThread(); //step1
addThread.start();
Log.i(“MenuAdapter”,"s1”)
在监听内部 确实是线程是最晚启动的
log.i()这个方法都要在线程之前启动,暂时还不知道原因 只能先记下了