BroadCastReceiver
Posted 我为恬恬上青铜
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BroadCastReceiver相关的知识,希望对你有一定的参考价值。
广播接收者案例_ip拨号器
(1)定义一个类继承BroadCastReceiver
public class OutGoingCallReceiver extends BroadcastReceiver {
//当接收到外拨电话的事件的时候回执行这个方法
@Override
public void onReceive(Context context, Intent intent) {
//[0]获取到我们保存的ip号码
SharedPreferences sp = context.getSharedPreferences("config", 0);
//[0.1]获取我们保存的ip号码
String ipnumber = sp.getString("ipnumber", "");
//[1]获取当前我们要拨打的电话号码
String currentNumber = getResultData();
//[1.1]判断拨打的电话是否是长途
if (currentNumber.startsWith("0")) {
//[2]在当前的号码前面加上一个17951
setResultData(ipnumber+currentNumber);
}
}
}
(2)在清单文件里面配置一下
<!--配置广播接收者 -->
<receiver android:name="com.itheima.ipdail.OutGoingCallReceiver">
<intent-filter >
<action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
</intent-filter>
</receiver>
(3)当我们配置的action 的事件发生了 onReceive方法就会执行
无序广播:类似新闻联播:广播不可以被终止 数据不可以被修改
有序广播:类似中央发送的红头文件 按照优先级一级一级的接收 有序广播可以被终止 数据可以被修改
特殊广播接收者
比如操作特别频繁的广播事件 屏幕的锁屏和解锁 电池电量的变化 这样的广播接收者在清单文件里面注册无效
以上是关于BroadCastReceiver的主要内容,如果未能解决你的问题,请参考以下文章