多线程环境中的Android ResultReceiver

时间:2013-11-15 10:59:55

标签: android multithreading android-intent

我有一个活动,基本上,它启动多个线程,以便从网络中获取多个资源。我在使用ResultReceiver机制从这些线程接收通知后更新UI。 代码段如下所示,

public void onReceiveResult(int resultCode, Bundle resultData){

    switch(resultCode){

    case 1: updateData1();
        break;

    case 2: updateData2();
        break;

    case 3: updateData3();
        break;
}

因为,它是在接收来自这些线程的通知时更新UI元素的主线程,我认为将方法onReceiveResult同步化是一个好主意。任何意见? 为了保持高效和安全,是否还有其他事项需要注意?

1 个答案:

答案 0 :(得分:0)

不,这没有帮助,它会阻止线程。而是运行将修改UI线程上的UI的代码,否则您将遇到问题,具体取决于调用此onReceiveResult的位置...

activity.runOnUiThread(new Runnable() {

           @Override
           public void run() {
               updateData1();
           }
});