Android 连接更改接收器是否在引导后存活/启动?

Android 连接更改接收器是否在引导后存活/启动?,android,connectivity,bootcompleted,Android,Connectivity,Bootcompleted,我有一个简单的广播接收器,可以监听连接变化,如果网络可用,它会设置一个重复警报,启动一个短期服务。如果没有网络连接,它将禁用重复报警: public class ConnectivityChange extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Log.d(getClass().getName(), "Connectivi

我有一个简单的广播接收器,可以监听连接变化,如果网络可用,它会设置一个重复警报,启动一个短期服务。如果没有网络连接,它将禁用重复报警:

public class ConnectivityChange extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Log.d(getClass().getName(), "Connectivity changed! :/");

        MyApplication app = (MyApplication ) context
                .getApplicationContext();


        if (app.isConnected()) {
            // setup repeating alarms, since we are connected.
            app.setCurrencyRatesServiceRepeatingAlarm(context);
            Log.d(getClass().getName(), "Connected :D");
        } else {
            // cancel any repeating alarm, since we are NOT connected.
            app.unsetCurrencyRatesServiceRepeatingAlarm(context);
            Log.d(getClass().getName(), "Not connected :(");
        }


    }

}
清单如下所示:

<receiver android:name="ConnectivityChange">
    <intent-filter>
        <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
    </intent-filter> 
</receiver>

所有这些都很好


然而,这段代码似乎在我重新启动模拟器后仍能运行。我不是要你把靴子穿好。我确保没有从快照还原模拟器。这是预期的行为吗?我不确定这是在哪里记录的。我正要请求BOOT_COMPLETE,这时我遇到了这个问题。

您可以注册一个BOOT_COMPLETED广播接收器,即使未请求将RECEIVE_BOOT_COMPLETED作为权限,它也将获得控制权

该错误已报告


即使你可以检查,所以线程

我知道这是一个有点老的问题,但我想我还是会考虑一下。很有可能在每次启动时连接都会发生变化,例如,设备从无连接变为连接。因此,您的代码将在设备每次启动时运行。

但我不是要求启动完成。我只注册了连接更改,但我的应用程序似乎在启动时运行。