安编程中使用handleMessage实现线程之间数据交互
更多最新安卓编程资料请关注微信公众号:安卓编程入门进阶
百度云原清晰度地址:http://pan.baidu.com/s/1mhS0H8O
本节课介绍HandleMessage在线程之间传递数据。由于UI线程不允许阻塞,也因此不允许子线程直接操作UI线程的View控件,因此对于已经由子线程运行得出的结果如果要呈现给用户,就需要使用到线程间的数据传递,handleMessage方法可以解决此问题,本课学习通过子线程获取当前的时间并通过handleMessage方法将数据传递到主线程并显示出来。
1、 新建安卓工程,在xml界面将已有的TextView控件内容删除并修改控件的ID为tvOut。
2、 在onCreate方法中直接初始化一个子线程,子线程中添加循环,循环体内每隔一秒获取到字符串类型的当前日期和时间,通过控制台输出。
3、 在MainActivity类中实例化handler对象,对象实例中重写handleMessage方法。
4、 在子线程run方法的循环中初始化Bundle对象实例,并将每次获取到的日期字符串通过键值对方式放入到bundle(bundle用于键值对的数据传递,参见http://www.360doc.com/content/13/0426/11/110467_281034064.shtml)实例中,然后初始化一个message对象实例,将带有数据的bundle对象放入message中,通过handler实例对象将message送到handleMessage中。
5、在handleMessage中使用TextView控件将子线程传出的字符呈现在手机界面上。
更多最新安卓编程资料请关注微信公众号:安卓编程入门进阶