android 广播的使用(自用)

来源:互联网 发布:易订货系统 源码 编辑:程序博客网 时间:2024/06/05 17:37

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

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 );





//////////////////////////////////////////////////////////////////////////////////////////


private BroadcastReceiver mReceiver = new BroadcastReceiver() {

@Override
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
if (BluetoothAdapter.ACTION_STATE_CHANGED.equals(action)) {
}
}
}


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
IntentFilter filter = new IntentFilter();
filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);
registerReceiver(mReceiver, filter);
}


@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(mReceiver);
}




广播接收者: 

1.注册(Androidmanifest.xml 或其它地方注册).
2.写广播接收者代码 class MyReceiver extends BroadcastReceiver { onReceiver(){} }
3.其它地方发送广播代码(有参数).


//  以IndroidLauncher为例:

//..............AndroidManifest.xml............................

        <activity

            android:name="cn.ingenic.launcher.IngenicLauncher"
            <intent-filter>
                <action android:name="cn.ingenic.action.NOTIFICATION_CLEAR.TEST" />
            </intent-filter>
        </activity>


private void registerLauncherReceivers() {
IntentFilter filter = new IntentFilter();
filter.addAction("cn.ingenic.action.NOTIFICATION_CLEAR.TEST");
mLauncherReceiver = new LauncherReceiver();
registerReceiver(mLauncherReceiver, filter);
}


private class LauncherReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
if ("cn.ingenic.action.NOTIFICATION_CLEAR.TEST".equals(action)) {

}



0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 怀孕50天看恐怖片肚子阴痛怎么办 欧卡二进游戏就卡画面了怎么办 魅族手机的微信图标找不到了怎么办 金立手机:微信图标找不到怎么办? 鞋厂装跟机老是卡钉怎么办 苹果手机摔了一下开不了机怎么办 百度网盘解析的种子保存不了怎么办 下载了种子百度网盘解析不了怎么办 正畸复诊后吃饭一直会磨嘴怎么办 遇到儿子说话对母亲不满母亲怎么办 冰箱旧了怎么办教你创新冰箱翻新法 微信陌生人加好友发红包怎么办 微信红包发了对方收不到怎么办 发红包是微信密码不知道了该怎么办 微信上红包密码不知道密码怎么办 本人不知道微信自动发红包怎么办 微信钱包里的钱没了怎么办 微信聊天删除了红包没领怎么办 微信红包未领取删掉了怎么办 微信红包没领取删掉了怎么办 微信红包没领取就删除好友了怎么办 老公一个人出去玩不愿带老婆怎么办 干了一年也攒不下钱怎么办 住院出院后请领导同事吃饭怎么办 有同事请吃饭答应了又不想去怎么办 同事请吃饭发红包不收怎么办 同事要走了请吃饭我不想去怎么办 请领导吃饭他说今晚有事我该怎么办 两个月的狗狗不吃狗粮怎么办 挖机驾驶室的小镙杆总是掉该怎么办 开挖机出了事故没有证怎么办 发现小孩有早恋现象做家长该怎么办 马上中考了初三孩子不上学怎么办 初三孩子老说自己难受不上学怎么办 幼儿园安全教案迷路了怎么办及反思 老婆发现我出轨后离家出走了怎么办 把丝袜放进马桶水箱堵了怎么办 如果老公那方面不行但人很好怎么办 老公哪里都好就是那方面不行怎么办 电饭锅盖子卡的地方掉了怎么办 唯品会退货已经收到了不退款怎么办