gpt4 book ai didi

java - 使用回调后执行到 UI 主线程的方法创建 Runnable 类

转载 作者:搜寻专家 更新时间:2023-11-01 08:44:58 24 4
gpt4 key购买 nike

我想知道这段代码是否正确。我怀疑 Runnable 类中的后台执行是在 run() 方法中执行还是在构造函数中执行...似乎很明显它在 run() 中,但我想确保我的想法...

class Tracer implements Runnable {
private Handler handler;
private OnTracerCompletedListener callback;

Tracer(OnTracerCompletedListener callback) {
this.callback = callback;
handler = new Handler(); // <--- is this on main UI thread?
}

@Override
public void run() {
// do something on background thread
// after task completed notify invoker of Tracer using callback
handler.post(new Runnable() {
@Override
public void run() {
if(callback != null) callback.onTracedCompleted();
}
}
}

}

最佳答案

构造函数和初始化程序中的代码与方法 run 中的代码之间的区别在于何时以及从哪个线程调用代码。

所以Tracer的构造函数中的代码会在创建实例时立即被调用。它将在调用者的线程中运行。 run 方法将在后台运行(这是我假设的,因为我不知道您的应用程序的体系结构)。

所以所有应该在后台完成的事情都应该在方法 run 中完成。

关于java - 使用回调后执行到 UI 主线程的方法创建 Runnable 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29346495/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com