22 广播小小总结
1,通知
在屏幕之外 展示给用户信息
1,普通的通知
2,大视图通知 使用样式
3,带进度条的通 明确的进度和模糊的进度
4,自定义的通知
一般使用在:消息推送
2,广播接收者 BroadcastReceiver
>1,定义 可以接收某一频道(action) 发送的广播 ,发送者 Activity,Service
>2,作用:
>监听系统的广播进行处理 :电量过低 进行提取 网络状态
系统广播:
1,电量的:Intent.ACTION_BATTERY_CHANGED
2,网络的
3,拨打电话的:android.intent.action.NEW_OUTGOING_CALL
4,短信的:android.provider.Telephony.SMS_RECEIVED
5,打电话的状态:android.intent.action.PHONE_STATE
5,....
>自定义广播 :在服务中下载数据 使用广播进行发送
>3,使用:
>1,创建一个class 继承BroadCastReceiver
>2,重写父类里的方法 onReceiver()
>3,注册广播
>静态注册:在清单文件进行注册
>特点:不管程序是否活动 都可以进行监听
>动态注册:在逻辑代码中注册
>一般在OnResume()里进行注册 在OnPause()方法 取消注册
registerReceiver(myBroadCastReceiver02, intentFilter);
特点:程序活动时 才进行监听
>4,分类
//普通广播 不能中断
sendBroadcast(intent);
//有序广播 可以中断 abortBroadcast();//中断广播
sendOrderedBroadcast(intent, null);
粘性广播:广播一直存在消息容器里 直到有接收者处理广播(弃用)
>5,广播接收者注意事项:
1,广播接受者的生命周期10s,在接收广播时创建 在onReceiver()执行后销毁
2,在广播接收者内不能做耗时操作 ,在主线程执行
3,在广播接收者内不能开启子线程 ,在广播结束后 ,创建的线程容易变成 空线程,很容易被程序回收
4,耗时操作让服务来执行