繁体   English   中英

何时确切地从BroadcastReceiver调用onReceive?

[英]When exactly onReceive from BroadcastReceiver is called?

我知道在主线程(UI)上调用了BroadcastReceiver onReceive 这是否意味着我的所有方法(如onStartonDestroyonClick()等)都必须在调用onReceive之前完成? 或者可以在例如onStart方法中间调用onReceive ,如下所示:

@Override
protected void onStart() {
        if (networkChangeReceiver != null) {
            IntentFilter intentFilter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
            context.registerReceiver(networkChangeReceiver, intentFilter);
        }
        method1();
        //here connection changes -> can onReceive be called here?
        method2();
        method3();
        (...)

}

即使onReceive在UI线程中被调用,也不要期望它仅在您完成onStart / onCreate之类的操作后才会出现。 广播可以随时接收,很可能介于两者之间或您的逻辑之间,因此您的假设是正确的:例如,可以从onStart()的代码中间直接调用该广播。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM