我正在使用Runnable在我的Android应用程序中执行一些后台任务。完成后台任务后的runnable将调用一个回调,该回调由实现runnable的函数的调用者实现。现在我想在调用回调后将执行切换到主线程。
public void DoInBackground(Callback callback)
{
Thread thread = new Thread(new Runnable(){
//Execution that to be done in background
//calling callback once the result is obtained
});
thread.start()
}
public void callee(){
DoInBackground(new callback(){
@Override
public void onSuccess(int value){
//Do operations after completion of background task
}
});
}
我希望onSucess在主线程上运行,而不是在DoInBackground函数中创建的新runnable。 我知道可以使用异步任务完成。还有其他办法吗。
答案 0 :(得分:1)
您可以在UI线程队列中使用Handler
到post
runnable,或者如果上下文是Activity,您可以使用runOnUiThread
方法。 runnable中的代码片段将在UI Thread
答案 1 :(得分:0)
将你的回调函数放在runOnUiThread函数中:
runOnUiThread(new Runnable() {
@Override
public void run() {
// callback function
}
});