Broadcast.onReceive是否在UI线程上运行?

时间:2016-02-08 12:23:49

标签: java android multithreading broadcastreceiver

有人可以帮我理解文档中的以下内容吗?

onReceive

  

此方法始终在其进程的主线程内调用,   除非您明确要求将其安排在不同的地方   线程使用registerReceiver(BroadcastReceiver,IntentFilter,String,   android.os.Handler)。当它在主线程上运行时,你永远不应该   在其中执行长时间运行的操作

以下代码:

IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);   
BroadcastReceiver receiver = new BroadcastReceiver() {    
    @Override
    public void onReceive(Context context, final Intent intent) {  
        if(Looper.myLooper() == Looper.getMainLooper()) {  
            Log.d(TAG, "Running in UI thread!");
        }    
    }    
};  
registerReceiver(receiver, filter);   

始终打印它在UI线程中运行 情况并非总是如此吗?

0 个答案:

没有答案