要在MainActivity中从Worker接收更新,可以使用Handler类来实现。以下是一个示例代码:
在Worker类中,使用Handler将更新发送给MainActivity:
public class Worker extends Thread {
private Handler mHandler;
public Worker(Handler handler) {
mHandler = handler;
}
@Override
public void run() {
// 执行耗时操作并获取结果
String result = doSomething();
// 将结果发送给MainActivity
Message message = mHandler.obtainMessage();
Bundle bundle = new Bundle();
bundle.putString("result", result);
message.setData(bundle);
mHandler.sendMessage(message);
}
private String doSomething() {
// 在此执行耗时操作
// 返回结果
return "更新的数据";
}
}
在MainActivity中,创建Handler实例并在其handleMessage方法中处理Worker发送的更新:
public class MainActivity extends AppCompatActivity {
private TextView mTextView;
private Handler mHandler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextView = findViewById(R.id.textView);
// 创建Handler实例
mHandler = new Handler(getMainLooper()) {
@Override
public void handleMessage(Message msg) {
Bundle bundle = msg.getData();
String result = bundle.getString("result");
// 处理更新
mTextView.setText(result);
}
};
// 启动Worker线程
Worker worker = new Worker(mHandler);
worker.start();
}
}
在这个示例中,Worker类将更新发送给MainActivity的Handler实例。MainActivity的Handler通过重写handleMessage方法来处理更新,将结果显示在TextView上。