在android中将执行切换到主线程

时间:2013-12-09 10:14:08

标签: java android multithreading

我正在使用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。 我知道可以使用异步任务完成。还有其他办法吗。

2 个答案:

答案 0 :(得分:1)

您可以在UI线程队列中使用Handlerpost runnable,或者如果上下文是Activity,您可以使用runOnUiThread方法。 runnable中的代码片段将在UI Thread

上运行

答案 1 :(得分:0)

将你的回调函数放在runOnUiThread函数中:

runOnUiThread(new Runnable() {
            @Override
            public void run() {
                // callback function

            }
        });