广播接受者的注册有两种方式:

来源:互联网 发布:sql server使用 编辑:程序博客网 时间:2024/05/20 04:51

广播接受者的注册有两种方式:

1.采用清单文件注册的广播接收者,只要应用程序被部署到手机上,广播接收者就生效了

2.采用代码的方式注册的广播接收者,生命周期与激活他的这段代码所在的组件生命周期相同

因为我们代码注册一个广播时使用:this.registeBroadcastReceiver()那么我们为了保证锁屏的广播接收者长期的能够接收到广播事件,保证调用者必须长时间在系统存活(采用服务的方式)

步骤:

1.创建一个service类,在onCreate()方法中使用registerReceiver(receiver,filter);注册一个广播接收者

receiver:我们可以定义一个广播接收者类继承BroadcastReceiver把我们要处理的方法事件写在onReceive()方法中

filter:广播接收者的意图过滤器

IntentFilter filter = new IntentFilter();

filter.setPriority(1000);设置优先级最高1000

filter.addAction(Intent.ACTION_SCREEN_OFF);//设置关心的动作,锁屏

 

2.在service类中的onDestroy()方法中反注册这个广播this.unregisterReceiver(receiver);//防止log异常

3.在activity中开启服务或者关闭服务

Private Intent lockscreenMonitorIntent = new Intent(this,LockSreenMonitor.class);

startService(lockscreenMonitorIntent );

stopService(lockscreenMonitorIntent );