2016-06-13 20 views
0

如果我做的:sendOrderedBroadcast - 哪个线程是响应接收器运行?

sendOrderedBroadcast(intent, null, new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     if(getResultCode() == Activity.RESULT_OK) { 
      Log.d("LoginActivity", "OK"); 
     } else { 
      Log.e("LoginActivity", "Fail!"); 
     } 
    } 
}, null, Activity.RESULT_CANCELED, null, null); 

哪个线程是onReceive()方法运行?在发送线程或在UI线程上?

+1

来自文档:'scheduler' \t用来调度resultReceiver回调的自定义Handler;如果为null,它将被安排在上下文的主线程中 – pskink

+0

因此,这意味着在UI线程上,对不对? – JohnyTex

+1

只需使用'Log.d'和'Thread.currentThread()' – pskink

回答

0

OnReceive总是在Receiver注册的应用程序的UI线程上调用。

在这种情况下,相同应用程序的UI /主线程。

相关问题