使用 Android 提供的 HandlerThread 来创建一个带有消息循环的线程,并在其中创建 handler。
时间: 2024-04-29 18:25:39 浏览: 9
以下是示例代码:
```java
public class MyThread extends HandlerThread {
private Handler mHandler;
public MyThread(String name) {
super(name);
}
@Override
protected void onLooperPrepared() {
mHandler = new Handler(getLooper()) {
@Override
public void handleMessage(Message msg) {
// 处理消息
}
};
}
public Handler getHandler() {
return mHandler;
}
}
```
在上述代码中,我们继承了 HandlerThread 类,并在 onLooperPrepared() 方法中创建了一个 Handler 对象。该方法会在消息循环启动之后调用,因此可以保证在 Handler 被创建时消息循环已经启动。
我们还提供了一个 getHandler() 方法来获取创建的 Handler 对象。在使用 MyThread 类时,可以通过该方法获取 Handler 并向其中发送消息。
下面是使用示例:
```java
MyThread thread = new MyThread("MyThread");
thread.start();
Handler handler = thread.getHandler();
handler.sendMessage(handler.obtainMessage(1, "Hello World"));
```
在上述示例中,我们创建了一个名为 "MyThread" 的线程,并启动了它。然后,我们通过 getHandler() 方法获取了该线程中创建的 Handler 对象,并向其中发送了一条消息。