zoukankan      html  css  js  c++  java
  • BroadcastReceiver组件

    BroadcastReceiver  广播接收者   必须指定要接收的广播类型。必须明确的指定action
     
    广播:事件。
    普通广播: 是异步的。会广播接收者同时接收,不能被中断
    sendBroadcast()
    有序广播: 是同步的。会根据广播接收的优先级进行接收,是可以中断   短信到来广播 
    sendOrderBroadcast()
    -1000 ~ 1000
    如果有序广播明确的指定了广播接收者,他是无法被中断的。
     
    广播接收者订阅的两种方式:
    1 在清单文件里面指定:
    1         <receiver android:name=".SmsReceiver">
    2             <intent-filter android:priority="1000">
    3                 <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
    4             </intent-filter>
    5         </receiver>
    2 在代码里面指定
    1     IntentFilter filter = new IntentFilter();
    2     filter.setPriority(1000);
    3     filter.addAction("android.provider.Telephony.SMS_RECEIVED");
    4     registerReceiver(new SmsReceiver(), filter);

    onReceive()方法里面是不能执行耗时的操作,这个方式如果在10s之内没有执行完毕,就anr.

    自定义广播:
      在MainActivity中代码如:
      
    1     public void send(View v){
    2      String info = et_info.getText().toString();
    3      
    4      //发送广播
    5      Intent intent = new Intent();
    6      intent.setAction("cn.itcast.action.send");
    7      intent.putExtra("info", info);
    8      sendBroadcast(intent);  //发出的是普通广播
    9     }

    写一个类继承BroadcastReceiver并且在清单文件中配置:

     1 public class MyReceiver extends BroadcastReceiver {
     2      @Override
     3      public void onReceive(Context context, Intent intent) {
     4         // TODO Auto-generated method stub
     5 
     6         String info = intent.getStringExtra("info");
     7          Log.i("i", "info :" + info);
     8      }
     9 
    10 }
    1         <receiver android:name=".MyReceiver">
    2             <intent-filter>
    3                 <action android:name="cn.android.action.send"/>
    4             </intent-filter>
    5         </receiver>
  • 相关阅读:
    mysql用户
    mysql字符集
    tidb之一致性算法raft学习
    更新港资股票数据
    php中的时区设置
    PHP 中的注释
    python下如何处理windows的路径名
    安装第三方模块
    偏函数
    装饰器没学明白,记录一下,以后再学
  • 原文地址:https://www.cnblogs.com/androidez/p/2887107.html
Copyright © 2011-2022 走看看