handlerthread如何与UI线程通信

   2024-10-07 9550
核心提示:HandlerThread是Android中的一个类,用于在后台线程中执行任务。要与UI线程进行通信,可以使用Handler类来实现。首先,在Handler

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。

 
举报打赏
 
更多>同类维修大全
推荐图文
推荐维修大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号