BroadCastReceiver

广播接收者案例_ip拨号器
  (1)定义一个类继承BroadCastReceiver 
   
  1. public class OutGoingCallReceiver extends BroadcastReceiver {
  2. //当接收到外拨电话的事件的时候回执行这个方法
  3. @Override
  4. public void onReceive(Context context, Intent intent) {
  5. //[0]获取到我们保存的ip号码
  6. SharedPreferences sp = context.getSharedPreferences("config", 0);
  7. //[0.1]获取我们保存的ip号码
  8. String ipnumber = sp.getString("ipnumber", "");
  9. //[1]获取当前我们要拨打的电话号码
  10. String currentNumber = getResultData();
  11. //[1.1]判断拨打的电话是否是长途
  12. if (currentNumber.startsWith("0")) {
  13. //[2]在当前的号码前面加上一个17951
  14. setResultData(ipnumber+currentNumber);
  15. }
  16. }
  17. }
 
  (2)在清单文件里面配置一下 
  1. <!--配置广播接收者 -->
  2. <receiver android:name="com.itheima.ipdail.OutGoingCallReceiver">
  3. <intent-filter >
  4. <action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
  5. </intent-filter>
  6. </receiver>
   (3)当我们配置的action 的事件发生了  onReceive方法就会执行 
 
无序广播:类似新闻联播:广播不可以被终止  数据不可以被修改 
有序广播:类似中央发送的红头文件  按照优先级一级一级的接收 有序广播可以被终止 数据可以被修改
 
特殊广播接收者
  比如操作特别频繁的广播事件 屏幕的锁屏和解锁 电池电量的变化 这样的广播接收者在清单文件里面注册无效
 
posted @ 2017-03-02 15:21  我为恬恬上青铜  阅读(143)  评论(0编辑  收藏  举报