Andoird 监听开机广播和关机广播

目录

 

一、监听开机广播

二、监听关机广播

三、测试结论


一、监听开机广播

      Android系统启动完成后会发出启动完成广播,所有注册了接收启动完成广播的接收器都会收到此广播。

1.自定义开机广播类

/**
 * Desc: 开机广播
 * Created by Jack on 2020/6/6 17:20
 **/
public class BootBroadcastReceiver extends BroadcastReceiver {
    private static final String TAG = "BootBroadcastReceiver";

    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        Log.v(TAG, "action=" + action);
        if (Intent.ACTION_BOOT_COMPLETED.equals(action)) {
            Log.d(TAG, "ACTION_BOOT_COMPLETED");

        }
    }
}

2.在AndroidManifest.xml文件里注册开机广播接收器


    
        
    

3.在AndroidManifest.xml文件里添加授予应用程序访问系统开机事件的权限

  *注意:Android 4.0后需要添加权限才能接收开机广播

 

二、监听关机广播

      Android系统提供了关机广播,在系统即将关闭时发出此广播。

1.自定义关机广播类

/**
 * Desc: 关机广播
 * Created by Jack on 2020/6/6 17:20
 **/
public class ShutdownBroadcastReceiver extends BroadcastReceiver {
    private static final String TAG = "ShutdownBroadcast";

    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        Log.v(TAG, "action=" + action);
        if (Intent.ACTION_SHUTDOWN.equals(action)) {
            Log.d(TAG, "ACTION_SHUTDOWN");

        }
    }
}

2.在AndroidManifest.xml文件里注册关机广播接收器


    
        
    

  *注意:只要断电关机时才能接收到关机广播,用adb reboot的方式重启时不能接收到关机广播

 

三、测试结论

     下面的表格数据是在不同测试case下通过输出的log整理出来的数据,从表格数据也可以总结出以一下要注意的两点:

      1)*注意:Android 4.0后需要添加权限才能接收开机广播

      2)*注意:只要断电关机时才能接收到关机广播,用adb reboot的方式重启时不能接收到关机广播

  接收开启广播 接收关机广播
adbreboot_重启_无权限
断电关机_开机_无权限
adbreboot_重启_有权限
断电关机_开机_有权限


 

你可能感兴趣的:(Android)