广播--的有序和无序

Intent有以下几个属性:
    动作(Action),数据(Data),分类(Category),类型(Type),组件(Compent)以及扩展信(Extra)。
    其中最常用的是Action属性和Data属性。
  1. 广播发送者
public class MainActivity extends Activity {
    Button btn_hv;
    Button btn_unhv;

    OnClickListener listener=new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            switch (v.getId()) {
            case R.id.btn_hv:
                Intent intent = new Intent();
                intent.setAction("com.hq.bdrecvier.order");        //发给action正确的人
                intent.putExtra("msg", "大家好,排好队,有序广播来了");   //发送广播的方法
                //设置为有序的广播
                sendOrderedBroadcast(intent, "george.permission.MY_BROADCAST_PERMISSION");
                break;
            case R.id.btn_unhv:
                Intent intent1 = new Intent();
                intent1.setAction("com.hq.bdrecvier.unorder");      //发给action正确的人
                intent1.putExtra("msg", "大家好,无序广播都收到了吧");    //发送广播的方法
                //设置为无序的广播
                sendBroadcast(intent1);
                break;

            default:
                break;
            }
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initUI();
    }


    private void initUI() {
        // TODO Auto-generated method stub
        btn_hv=(Button)findViewById(R.id.btn_hv);
        btn_hv.setOnClickListener(listener);
        btn_unhv=(Button)findViewById(R.id.btn_unhv);
        btn_unhv.setOnClickListener(listener);
    }

2.接受者的实现

1.在Activity中
package com.hq.unoderreceiver;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class OrderSecondReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        // TODO Auto-generated method stub

        System.out.println("another apk -OrderSecondReceiver----got a intent : " + 
                intent.getStringExtra("msg"));
        //如果不继续传播
        abortBroadcast();
    }

}
-------------------------------------------------------------------------------------
2.在AndroidManfest.xml中的登记
 2.1有序
 1. <!-- 声明权限 -->
    <permission android:protectionLevel="normal"
        android:name="george.permission.MY_BROADCAST_PERMISSION">
    </permission>
 2.  <!-- 获取广播权限 -->
    <uses-permission android:name="george.permission.MY_BROADCAST_PERMISSION"/>
    //表示权限的高低,最高为999,可以多个为999,表示都为最高等级
 3.<intent-filter android:priority="999"> 
    如下:
        <receiver android:name="com.hq.unoderreceiver.OrderFirstReceiver" >
            <intent-filter android:priority="999">
                <action android:name="com.hq.bdrecvier.order"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
        </receiver>


        <receiver android:name="com.hq.unoderreceiver.OrderSecondReceiver" >
            <intent-filter android:priority="998">
                <action android:name="com.hq.bdrecvier.order"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
        </receiver>

2.2无序(不要加上面的3条)

          <receiver android:name="com.hq.unoderreceiver.OrderSecondReceiver" >
            <intent-filter android:priority="998">
                <action android:name="com.hq.bdrecvier.order"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
        </receiver>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值