其它类对象如何访问handler
时间: 2023-12-02 13:24:00 浏览: 40
在Android中,其它类对象如何访问Handler,取决于这个Handler对象是在哪个线程中创建的。如果Handler对象是在主线程中创建的,那么其它类对象可以通过在UI线程中使用Handler对象来更新UI;如果Handler对象是在子线程中创建的,那么其它类对象则需要通过Handler的sendMessage()方法或post()方法来向Handler发送消息,从而实现线程间通信。
以下是一个在子线程中访问Handler的示例:
```java
public class MyThread extends Thread {
private Handler mHandler;
public MyThread(Handler handler) {
mHandler = handler;
}
@Override
public void run() {
super.run();
// 子线程中发送消息
Message msg = mHandler.obtainMessage(1, "Hello, Handler!");
mHandler.sendMessageDelayed(msg, 2000);
}
}
```
在上述代码中,我们在子线程中创建了一个MyThread对象,并将主线程中创建的Handler对象作为参数传入MyThread的构造方法中。在MyThread的run()方法中,我们使用Handler对象的sendMessage()方法向主线程发送一条消息,延时2秒后将消息的obj字段设置为"Hello, Handler!"。这样就能够在子线程中访问主线程中创建的Handler对象了。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)