Handler(上)——Mars Andoird开发视频第二季第六集(重)
生活随笔
收集整理的這篇文章主要介紹了
Handler(上)——Mars Andoird开发视频第二季第六集(重)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2019獨角獸企業重金招聘Python工程師標準>>>
1. 通過Handler實現線程間通信
handler、Looper、Message Queue(消息隊列)的重要價值就是實現主線程與工作線程之間的通信
實現:將工作線程中的數據通過消息傳遞到主線程中。
例子:
點擊按鈕,啟動線程;休眠2秒后將帶有數據的消息發送出去。
之后當Hanlder接收到數據時,將數據顯示在文本域上。
1.1 在Worker Thread中通過Handler發送消息
- 線程:
Message.obj 字段可以用來儲存數據
Handler.sendMessage方法在任何線程中都可使用
class NetWorkThread extends Thread {public void run() {try {Thread.sleep(2 * 1000);} catch (InterruptedException e) {e.printStackTrace();}String date = "工作線程中的數據";Message msg = handler.obtainMessage();msg.obj = date;handler.sendMessage(msg);}}- 按鈕監聽:
啟動線程
class ButtonListener implements OnClickListener {public void onClick(View v) {new NetWorkThread().start();}}1.2 主線程中實現Handler的handleMessage()方法
- 繼承Handler、重寫handleMessage方法,處理接收到的消息。
將工作線程傳來的數據顯示在UI上
class MyHandler extends Handler {public void handleMessage(Message msg) {super.handleMessage(msg);String date = (String) msg.obj;textView_1.setText(date);}}效果:
啟動程序:
點擊按鈕:
轉載于:https://my.oschina.net/u/2437172/blog/496219
總結
以上是生活随笔為你收集整理的Handler(上)——Mars Andoird开发视频第二季第六集(重)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 下滑栏的实现
- 下一篇: struts文件上传,获取文件名和文件类