我知道在主线程(UI)上调用来自onReceive
的{{1}}。这是否意味着我的所有方法如BroadcastReceiver
,onStart
,onDestroy
等必须在调用onClick()
之前完成?或者我可以在onReceive
方法中调用onReceive
,例如onStart
方法,如下所示:
@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();
(...)
}
答案 0 :(得分:0)
即使在UI线程中调用onReceive,也不要指望它只在你在onStart / onCreate或其他任何东西完成之后出现。广播可以随时接收,很可能是介于两者之间或逻辑中,因此您的假设是正确的:例如,可以在代码中间从onStart()调用广播。