[英]When exactly onReceive from BroadcastReceiver is called?
我知道在主线程(UI)上调用了BroadcastReceiver
onReceive
。 这是否意味着我的所有方法(如onStart
, onDestroy
, onClick()
等)都必须在调用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.