Android中,从匿名类向线程返回值的正确方法是使用回调函数或者使用Handler机制。
示例代码如下:
public interface Callback {
void onResult(String result);
}
public class MyThread extends Thread {
private Callback callback;
public MyThread(Callback callback) {
this.callback = callback;
}
@Override
public void run() {
// 执行耗时操作
String result = "Hello World";
callback.onResult(result);
}
}
// 在调用处
MyThread myThread = new MyThread(new Callback() {
@Override
public void onResult(String result) {
// 处理返回结果
Log.d(TAG, "Result: " + result);
}
});
myThread.start();
示例代码如下:
public class MyThread extends Thread {
private Handler handler;
public MyThread(Handler handler) {
this.handler = handler;
}
@Override
public void run() {
// 执行耗时操作
String result = "Hello World";
Message message = handler.obtainMessage();
message.obj = result;
handler.sendMessage(message);
}
}
// 在主线程中
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
String result = (String) msg.obj;
// 处理返回结果
Log.d(TAG, "Result: " + result);
}
};
MyThread myThread = new MyThread(handler);
myThread.start();
以上两种方法都可以实现从匿名类向线程返回值的功能,具体选择哪种方法取决于具体的需求和场景。
领取专属 10元无门槛券
手把手带您无忧上云