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>
  • 相关阅读:
    k8s问题收集
    kubeadm简单安装k8s
    centos7 --kubeadm安装
    K8S各知识点整理
    【转载】dfs序七个经典问题
    ZJOI 2018 一试记
    【模板】高精度
    【科技】扩展欧几里得 + 逆元
    【模板】ISAP最大流
    【模板】最小费用最大流
  • 原文地址:https://www.cnblogs.com/androidez/p/2887107.html
Copyright © 2011-2022 走看看