本文例子要完成下述操作:
step1: 点击一个button按键,启动一个耗时的子线程;
step2: 子线程中完成耗时操作后,通过调用handler将其内的参数传出;
step3: handler的消息处理函数将子线程传出的数据修改到TextView控件中。
参考MARS教程重制版第二季。
重要的知识点:
1. 耗时或会产生阻塞的操作要放到子线程(worker thread)中;
2. 子线程内的处理程序不能直接修改控件,修改控件只能在主线程(main thread)中;
3. 如何启动子线程(详见button控件的监听器);
4. 如何定义handler,以及通过handler发送消息、传递参数(详见子线程处理程序);
5. handler如何处理消息(详见handler实现类中的handleMessage方法)。
1. 设置button监听器并绑定,在其中启动子线程:
2. 编写子线程实现类,在其中处理耗时操作,然后调用handler传递参数、发送消息:
3. 在第二步之前要定义handler实现类,并创建该类的对象,如上的handler
在handler的实现类中,实现hanleMessge方法,处理子线程发送的消息,如本例中设置TextView控件的显示数据