zoukankan      html  css  js  c++  java
  • 自定义无序广播和有序广播

    package com.example.order;
    import android.app.Activity;
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    public class MainActivity extends Activity {
       @Override
       protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
       }
       public void send(View v){
          Intent intent = new Intent();
          intent.setAction("com.example.order.CCTV");   
          /*
    
           * intent          :意图
           * receiverPermission :指定接收者的权限
           * resultReceiver     :最终的广播接收者
           * scheduler       :Handler
           * initialCode        :广播编码
           * initialData        :设置广播的数据,接收者getResultData()获取数据
           * initialExtras      :把数据设置到bundle,数据量大的时候用
           */
          //sendOrderedBroadcast(intent, null, new FinalReceiver(), new Handler(), 1,
    
          //    "给每个码农补贴¥10000元", null);//后两个参数设置数据 //发送自定义有序广播    
          sendBroadcast(intent);//发送自定义无序广播
       }
      
    
       /**
        * 无论签名的广播怎么拦截怎么终止
        * 都是最后一个接收到广播的接收者
        * 最终的广播接收者
        * 不要在清单文件中注册
       */
    
       public class FinalReceiver extends BroadcastReceiver{
          @Override
          public void onReceive(Context context, Intent intent) {
             System.out.println("最终接收者:"+getResultData());
          }    
       }
    }

    package com.example.code_famer;
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    public class HighCoderFamerReceiver extends BroadcastReceiver { 
       @Override
       public void onReceive(Context context, Intent intent) {
          if ("com.example.order.CCTV".equals(intent.getAction())) {
             String result = getResultData();        
             System.out.println("高级码农:"+result);
             //拦截终止广播
    //       abortBroadcast();        
             //修改广播里的数据
             setResultData("给每个码农补贴¥1000元");
          }
       }
    }

    package com.example.code_famer;
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    public class MiddleCoderFamerReceiver extends BroadcastReceiver {
       @Override
       public void onReceive(Context context, Intent intent) {
          if ("com.example.order.CCTV".equals(intent.getAction())) {
             String result = getResultData();        
             System.out.println("中级码农:"+result);        
             //修改广播里的数据
             setResultData("给每个码农买个糖吃");
          }
       }
    }

    package com.example.code_famer;
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    public class BirdCoderFamerReceiver extends BroadcastReceiver {
      @Override
       public void onReceive(Context context, Intent intent) {
          if ("com.example.order.CCTV".equals(intent.getAction())) {
             String result = getResultData();        
            System.out.println("菜鸟码农:"+result);       
          }
       }
    }

    清单文件中:
           <receiver android:name="com.example.code_famer.HighCoderFamerReceiver" >
                <intent-filter android:priority="1000">
                    <action android:name="com.example.order.CCTV" />
                </intent-filter>
            </receiver>      
            <receiver android:name="com.example.code_famer.MiddleCoderFamerReceiver" >
                <intent-filter android:priority="0">
                    <action android:name="com.example.order.CCTV" />
                </intent-filter>
            </receiver>      
            <receiver android:name="com.example.code_famer.BirdCoderFamerReceiver" >
                <intent-filter android:priority="-1000">
                    <action android:name="com.example.order.CCTV" />
                </intent-filter>
            </receiver>
     
    
  • 相关阅读:
    openstack对接VMware浅析
    一键部署 Docker Datacenter ---简化docker数据中心安装步骤
    基于Kubernetes(k8s)网络方案演进
    kubernetes1.4 基础篇:Learn Kubernetes 1.4 by 6 steps
    使用Netsil监控Kubernetes上的微服务
    Kubernetes(k8s)容器运行时(CRI)
    在Openstack上创建并访问Kubernetes集群
    html5--canvas绘制简单的时钟
    html5——canva 绘图1简单图形
    html5 兼容火狐 ev的事件
  • 原文地址:https://www.cnblogs.com/loaderman/p/6416097.html
Copyright © 2011-2022 走看看