中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

handlerthread如何與UI線程通信

小樊
81
2024-06-28 18:46:30
欄目: 編程語言

HandlerThread是Android中的一個類,用于在后臺線程中執行任務。要與UI線程進行通信,可以使用Handler類來實現。

首先,在HandlerThread中創建一個Handler對象,并在UI線程中創建一個Handler對象,然后在UI線程中向HandlerThread發送消息,從而實現UI線程與HandlerThread之間的通信。

以下是一個簡單的示例代碼:

public class MyHandlerThread extends HandlerThread {
    private Handler mHandler;

    public MyHandlerThread(String name) {
        super(name);
    }

    @Override
    protected void onLooperPrepared() {
        super.onLooperPrepared();
        mHandler = new Handler(getLooper()) {
            @Override
            public void handleMessage(Message msg) {
                //處理消息
            }
        };
    }

    public Handler getHandler() {
        return mHandler;
    }
}

public class MainActivity extends AppCompatActivity {
    private MyHandlerThread mHandlerThread;
    private Handler mHandler;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mHandlerThread = new MyHandlerThread("MyHandlerThread");
        mHandlerThread.start();

        mHandler = new Handler(Looper.getMainLooper()) {
            @Override
            public void handleMessage(Message msg) {
                //處理從HandlerThread傳遞來的消息
            }
        };

        //發送消息給HandlerThread
        mHandlerThread.getHandler().sendMessage(new Message());
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        mHandlerThread.quit();
    }
}

在上面的例子中,MyHandlerThread類繼承自HandlerThread,并在onLooperPrepared()方法中創建了一個Handler對象用于處理消息。在MainActivity中,我們創建了一個Handler對象用于處理來自HandlerThread的消息,并且可以通過調用getHandler()方法獲取MyHandlerThread中的Handler對象,然后發送消息給HandlerThread。

0
江北区| 慈利县| 缙云县| 常德市| 垣曲县| 德兴市| 会同县| 天门市| 彩票| 桃园市| 特克斯县| 顺平县| 景洪市| 通海县| 大渡口区| 成武县| 武夷山市| 青河县| 诸暨市| 榕江县| 宜兴市| 兴业县| 扶风县| 贵港市| 清新县| 兰坪| 中牟县| 宝丰县| 永春县| 龙泉市| 盖州市| 兰考县| 邹平县| 穆棱市| 崇礼县| 瓮安县| 固镇县| 岚皋县| 临沭县| 财经| 灌云县|