为什么要有handler机制

2024-10-13 17:53:15

1、Handler的工作原理 一般情况下,在主线程中我们绑定了Handler,并在事件触发上面创建新的线程用于完成某些耗时的操作,当子线程中的工作完成之后,会对Handler发送一个完成的信号,而Handler接收到信号后,就进行主UI界面的更新操作。

2、Handler与子线程协作实例1、创建Handler实现类,在主UI所在类中的内部类classMyHandlerextendsHand造婷用痃ler{ publicMyHandler(){ } publicMyHandler(LooperL){ super(L); } //重写handleMessage方法,接受数据并更新UI @Override publicvoidhandleMessage(Messagemsg){ super.handleMessage(msg); //此处根据msg内容进行UI操作 }}2、子线程的实现classMyThreadimplementsRunnable{publicvoidrun(){ Messagemsg=newMessage(); Bundleb=newBundle(); b.putString("cmd","update"); msg.setData(b); MainActivity.this.myHandler.sendMessage(msg); //通知Handler更新UI }} 通过以上的两个实现,我们只需要在MainActivity中声明MyHandler实例对象就可以完成线程之间的通讯和界面的更新操作。MyHandlermyHandler=newMyHandler();

猜你喜欢