【发布时间】:2017-08-09 15:39:59
【问题描述】:
我想从后台线程循环中调用不同的代码(回调)并使用该后台线程来执行工作。它类似于 C# 中的委托。
public class test {
private boolean keepRunning;
private boolean messageReady;
private MyClass myClass;
void LongBackgroundWork(){
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
while (keepRunning) {
if (messageReady){
myClass.callback(); // call different methods here
// to be decided at runtime and run on this worker thread
}
}
}
});
thread.start();
}
}
我想使用后台线程而不是 UI 线程。我想从 myClass 中设置一个回调来选择调用什么代码。在 C# 中如何使用 Java 很容易。 我在 Java 方面没有太多经验,也不明白使用什么机制。我应该使用处理程序吗?处理程序可以在后台线程上运行代码吗?
【问题讨论】:
-
Android 中的BackgroundTask 称为AsyncTask。从这里开始:developer.android.com/reference/android/os/AsyncTask.html.
-
我想你误解了我的问题。
-
“处理程序可以在后台线程上运行代码吗?”。不,你应该使用 AsyncTask 来代替
-
这绝对不是解决方案,但谢谢。
-
我的不是答案,只是提示(评论)。