zoukankan      html  css  js  c++  java
  • BroadcastReceiver之有序广播

    有序广播可以按一定的优先级进行传播

    首先进行发送广播

    public void click(View v){
    
            Intent intent = new Intent();
            intent.setAction("com.coderwei.orderbroadcast");
            sendOrderedBroadcast(intent,null,new FinalReceiver(),null,1,"我是一条有序广播",null);
        }

    上面new FinalReceiver继承于与BroadcastReceiver,但是不用再清单文件中配置,有特权,可以用于接收最后的结果

     1 public class FirstBroadcast extends BroadcastReceiver {
     2     @Override
     3     public void onReceive(Context context, Intent intent) {
     4         String content = getResultData();
     5         Toast.makeText(context,"First"+content,Toast.LENGTH_SHORT).show();
     6         setResultData("我是一条已经被接收过一次了的有序广播");
     7 
     8     }
     9 }
    10 
    11 
    12 public class SecondBroadcast extends BroadcastReceiver {
    13     @Override
    14     public void onReceive(Context context, Intent intent) {
    15         String content = getResultData();
    16         //abortBroadcast();//停止广播
    17         Toast.makeText(context,"Second"+content,Toast.LENGTH_SHORT).show();
    18         setResultData("我是一条被接收过两次的广播");
    19     }
    20 }
    21 
    22 
    23 
    24 public class ThirdBroadcast extends BroadcastReceiver {
    25     @Override
    26     public void onReceive(Context context, Intent intent) {
    27         String content = getResultData();
    28         Toast.makeText(context,"Third"+content,Toast.LENGTH_SHORT).show();
    29 
    30     }
    31 }

    然后就是配置Manifest.xml

     1     <receiver android:name=".FirstBroadcast">
     2             <intent-filter
     3                 android:priority="1000">
     4                 <action android:name="com.coderwei.orderbroadcast"/>
     5             </intent-filter>
     6         </receiver>
     7         <receiver android:name=".SecondBroadcast">
     8             <intent-filter
     9                 android:priority="800">
    10                 <action android:name="com.coderwei.orderbroadcast"/>
    11             </intent-filter>
    12         </receiver>
    13         <receiver android:name=".ThirdBroadcast">
    14             <intent-filter
    15                 android:priority="200">
    16                 <action android:name="com.coderwei.orderbroadcast"/>
    17             </intent-filter>
    18         </receiver>
    android:priority 代表优先级,-1000 到 1000之间,数值越大,优先级越大。

    GitHub:https://github.com/godfunc
    博客园:http://www.cnblogs.com/godfunc
    Copyright ©2019 Godfunc
  • 相关阅读:
    web前端的面试真题
    web前端面试真题! 面试的经历和回答只做参考1
    web前端面试真题! 面试的经历和回答只做参考
    html面试资料
    angluar.js的核心介绍
    解决 Chrome支持小于12px 的文字
    div居中效果出现的问题和解决方法
    li和li之间的bug解决方法
    前端面试题笔试考题和答案
    html5新增的标签和使用的方法
  • 原文地址:https://www.cnblogs.com/Godfunc/p/6023042.html
Copyright © 2011-2022 走看看