安卓一个类继承Thread后被调用怎样在Mainactivity里获取他的handler
时间: 2024-05-11 17:16:15 浏览: 109
要在 MainActivity 中获取子线程的 Handler,可以通过以下步骤实现:
1. 在子线程中创建一个 Handler 对象,并在其构造函数中传入 Looper.getMainLooper(),以便让 Handler 接收来自主线程的消息。
2. 在子线程中定义一个公共方法,用于返回 Handler 对象。
3. 在 MainActivity 中获取子线程的实例,并调用上一步中定义的方法来获取 Handler 对象。
4. 使用获取到的 Handler 对象,可以向子线程发送消息或者执行子线程中的方法。
具体实现可以参考以下代码:
子线程 Thread 的定义:
```
public class MyThread extends Thread {
private Handler mHandler;
public MyThread() {
mHandler = new Handler(Looper.getMainLooper());
}
// 定义一个公共方法,用于返回 Handler 对象
public Handler getHandler() {
return mHandler;
}
@Override
public void run() {
// do something
}
}
```
MainActivity 中获取子线程的实例,并获取 Handler:
```
public class MainActivity extends AppCompatActivity {
private MyThread mThread;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 获取子线程的实例
mThread = new MyThread();
// 启动子线程
mThread.start();
// 获取 Handler 对象
Handler mHandler = mThread.getHandler();
}
}
```
以上代码提供的是一种解决问题的思路,具体实现需要根据具体情况进行调整。
阅读全文