简体   繁体   English

何时确切地从BroadcastReceiver调用onReceive?

[英]When exactly onReceive from BroadcastReceiver is called?

I know that onReceive from BroadcastReceiver is called on the main thread (UI). 我知道在主线程(UI)上调用了BroadcastReceiver onReceive Does it mean that my all methods like onStart , onDestroy , onClick() etc have to be finished before onReceive will be called? 这是否意味着我的所有方法(如onStartonDestroyonClick()等)都必须在调用onReceive之前完成? Or can onReceive be called while I'm for example in the middle of onStart method, like this: 或者可以在例如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();
        (...)

}

Even if onReceive it's called in UI thread don't expect it to appear only after you finish your stuff in onStart/onCreate or whatever. 即使onReceive在UI线程中被调用,也不要期望它仅在您完成onStart / onCreate之类的操作后才会出现。 The broadcast can receive at anytime, most likely somewhere in between or your logic, so your assumtion is correct: can be called right in the middle of your code from onStart() for example. 广播可以随时接收,很可能介于两者之间或您的逻辑之间,因此您的假设是正确的:例如,可以从onStart()的代码中间直接调用该广播。

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

相关问题 不调用来自BroadcastReceiver的onReceive - onReceive from BroadcastReceiver is not called BroadcastReceiver 从 StartActivity(ActivityFlags.NewTask) 返回时未调用 OnReceive - BroadcastReceiver OnReceive not called when returning from StartActivity(ActivityFlags.NewTask) BroadcastReceiver onReceive()在动态注册时不调用 - BroadcastReceiver onReceive() not Called when registered dynamically BroadcastReceiver.onReceive 是否每条短信只调用一次? - Is the BroadcastReceiver.onReceive called exactly once per sms? BroadcastReceiver - onReceive未被调用 - BroadcastReceiver - onReceive Not Being Called BroadcastReceiver onReceive没有被调用 - BroadcastReceiver onReceive is not getting called 重启设备时总是调用BroadcastReceiver的onReceive()函数 - onReceive() function of BroadcastReceiver always called when device is rebooted 电池电量变化时不会调用BroadcastReceiver的onReceive - BroadcastReceiver's onReceive not called when battery level changes 使用LocalBroadcastManager注册BroadcastReceiver时,不会调用onReceive - onReceive not being called when BroadcastReceiver is registered using LocalBroadcastManager Redmi 2中的Internet处于关闭状态时未调用Android BroadcastReceiver的onReceive - Android BroadcastReceiver's onReceive not called when internet is OFF in redmi 2
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM