什么时候调用来自BroadcastReceiver的onReceive?

时间:2018-02-17 08:35:52

标签: android android-broadcastreceiver

我知道在主线程(UI)上调用来自onReceive的{​​{1}}。这是否意味着我的所有方法如BroadcastReceiveronStartonDestroy等必须在调用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();
        (...)

}

1 个答案:

答案 0 :(得分:0)

即使在UI线程中调用onReceive,也不要指望它只在你在onStart / onCreate或其他任何东西完成之后出现。广播可以随时接收,很可能是介于两者之间或逻辑中,因此您的假设是正确的:例如,可以在代码中间从onStart()调用广播。