精华内容
下载资源
问答
  • 实验要求:通过sendOrderedBroadeast()发送一条有序广播 1.在activity-main.xml布局文件中代码如下: <?xml version=1.0 encoding=utf-8?> <RelativeLayout xmlns:android=http://s
  • 发送一条有序广播

    2016-10-13 20:00:00
    //点击按钮 发送大米 public void click(View v) { //发送一条有序广播 Intent intent = new Intent(); //设置一个action intent.setAction("com.itheima.rice"); ...

     

    //点击按钮  发送大米 
        public void click(View v) {
            
            //发送一条有序广播 
            Intent intent = new Intent();
            //设置一个action
            intent.setAction("com.itheima.rice");
            /**
             * receiverPermission 接收的权限
             * resultReceiver 最为一个最终的receive  最后都能够接收到广播 
             */
            sendOrderedBroadcast(intent, null, new FinalReceiver(), null, 1, "给每个村民发了1000斤大米", null);
            
            
        }

     

    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.widget.Toast;
    
    public class ProvienceReceiver extends BroadcastReceiver {
    
        @Override
        public void onReceive(Context context, Intent intent) {
            
            //[1]获取到发送广播携带的数据 
            String content = getResultData();
            
            //[2]展示到Toast上
            Toast.makeText(context, "省:"+content, 1).show();
            
            //[2.1]终止广播 
    //        abortBroadcast();
            
            //[3]修改数据 (扣留大米)
            setResultData("给每个村民发了500斤大米");
            
            
        }
    
    }

     

    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.widget.Toast;
    
    public class CityReceiver extends BroadcastReceiver {
    
        @Override
        public void onReceive(Context context, Intent intent) {
    
            //[1]获取到发送广播携带的数据 
            String content = getResultData();
            
            //[2]展示到Toast上
            Toast.makeText(context, "市:"+content, 1).show();
            
            //[3]修改数据 (扣留大米)
            setResultData("给每个村民发了200斤大米");
            
        }
    
    }

     

    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.widget.Toast;
    
    public class CountryReceiver extends BroadcastReceiver {
    
        @Override
        public void onReceive(Context context, Intent intent) {
    
            //[1]获取到发送广播携带的数据 
            String content = getResultData();
            
            //[2]展示到Toast上
            Toast.makeText(context, "乡:"+content, 1).show();
    
            //[3]修改数据 (扣留大米)
            setResultData("给每个村民发了10斤大米");
            
        }
    
    }

     

    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.widget.Toast;
    
    public class NongMinReceiver extends BroadcastReceiver {
    
        @Override
        public void onReceive(Context context, Intent intent) {
            
            //[1]获取到发送广播携带的数据 
            String content = getResultData();
            
            //[2]展示到Toast上
            Toast.makeText(context, "农民:"+content, 1).show();
        }
    
    }

     

    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.widget.Toast;
    
    /**
     * 最终的receiver 不需要再清单文件里面配置
     * @author jhon
     *
     */
    public class FinalReceiver extends BroadcastReceiver {
    
        @Override
        public void onReceive(Context context, Intent intent) {
    
            String content = getResultData();
    
            Toast.makeText(context, "报告"+content, 1).show();
            
            
        }
    
    }

     

         <!--配置广播接收者  -->
            <receiver android:name="com.itheima.receiverice.ProvienceReceiver">
                <intent-filter 
                    android:priority="1000"
                    >
                    <action android:name="com.itheima.rice"/>
                </intent-filter>
            </receiver>
            
             <receiver android:name="com.itheima.receiverice.CityReceiver">
                <intent-filter 
                    android:priority="800"
                    >
                    <action android:name="com.itheima.rice"/>
                </intent-filter>
            </receiver>
            
                 <receiver android:name="com.itheima.receiverice.CountryReceiver">
                <intent-filter 
                    android:priority="100"
                    >
                    <action android:name="com.itheima.rice"/>
                </intent-filter>
            </receiver>
             <receiver android:name="com.itheima.receiverice.NongMinReceiver">
                <intent-filter 
                    android:priority="10"
                    >
                    <action android:name="com.itheima.rice"/>
                </intent-filter>
            </receiver>

     

    转载于:https://www.cnblogs.com/xufengyuan/p/5957827.html

    展开全文
  • 实验目标:掌握有序广播的使用* 1:设计布局文件 xmlns:tools="http://schemas.android.com/tools" android

    实验目标:掌握有序广播的使用*
    1:设计布局文件

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/activity_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:background="@drawable/stitch_one"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context="com.edu.bzu.myapplication.MainActivity">
        <Button
            android:text="发送有序广播"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="80dp"
            android:paddingLeft="5dp"
            android:onClick="send"
            android:textSize="20sp"
            android:background="#FBFBFF"
            android:paddingRight="5dp"
            android:id="@+id/button" />
    
    </RelativeLayout>
    

    2:编写界面交互代码
    点击事件处理方法:

    package com.edu.bzu.myapplication;
    
    import android.content.Intent;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
        public  void send(View view)
        {
            Intent intent=new Intent();
            //定义广播的事件类型
            intent.setAction("Intercept_Stitch");
            //发送广播
            sendBroadcast(intent,null);
    
        }
    }
    

    3:修改权限并注册广播接受者

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.edu.bzu.myapplication">
    
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
            <activity android:name=".MainActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
    
            <receiver
                android:name=".MybroadcastReceiverOne"
                android:enabled="true"
                android:exported="true">
                <intent-filter android:priority="100"/>
            </receiver>
            <receiver android:name=".MybroadcastReceiverOne">
                <intent-filter android:priority="1000" >
                    <action android:name="Intercept_Stitch"/>
                  </intent-filter>
            <!--<receiver android:name=".MybroadcastReceiverTwo">-->
                <!--<intent-filter android:priority="200" >-->
                    <!--<action android:name="Intercept_Stitch"/>-->
                <!--</intent-filter>-->
            <!--<receiver android:name=".MybroadcastReceiverThree">-->
                <!--<intent-filter android:priority="600" >-->
                    <!--<action android:name="Intercept_Stitch"/>-->
                <!--</intent-filter>-->
            <!--</receiver>-->
        </application>
    
    </manifest>

    4:创建广播接受者MybroadcastReceiverOne

    package com.edu.bzu.myapplication;
    
    import android.app.Service;
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.os.IBinder;
    import android.util.Log;
    
    public class MybroadcastReceiverOne extends BroadcastReceiver {
        public MybroadcastReceiverOne() {
        }
    
        @Override
        public void onReceive(Context context, Intent intent) {
            Log.i("MybroadcastReceiverOne","自定义的广播接受者One,接收到了广播事件");
            abortBroadcast();//
            Log.i("MybroadcastReceiverTwo","我是广播接受者Two,广播被我终结了!");
        }
    
    
    }
    

    5:运行结果显示:
    这里写图片描述

    展开全文
  • 所有的注意事项都在代码的注释里面 值得注意的是广播里面不能做耗时操作

      所有的注意事项都在代码的注释里面 值得注意的是广播里面不能做耗时操作


    package com.imooc.www.moocdemo;
    
    import android.content.*;
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.view.View;
    import android.widget.Button;
    
    /**
     * Created by Administrator on 2016/5/13.
     */
    public class BroadCastActivity extends AppCompatActivity implements View.OnClickListener {
        private Button Bc1, Bc2, Bc3;
        private BR2 bc2;
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.broadcastactivity);
            Bc1 = (Button) findViewById(R.id.bc1);
            Bc2 = (Button) findViewById(R.id.bc2);
            Bc3 = (Button) findViewById(R.id.bc3);
            Bc1.setOnClickListener(this);
            Bc2.setOnClickListener(this);
            Bc3.setOnClickListener(this);
    //动态注册广播接收器。来接收广播,动态注册的广播优先级要高于在清单文件注册的广播接收器要高。值注意的是在程序结束的时候记得释放资源(在ondestory方法里取消这个注册器)
            IntentFilter intentFilter = new IntentFilter("BC_1");
            bc2 = new BR2();
            registerReceiver(bc2,intentFilter);
    
        }
    
        @Override
        public void onClick(View v) {
            switch (v.getId()) {
                case R.id.bc1:
                    Intent intent = new Intent();
                    intent.putExtra("msg", "这是一条普通广播");
                    intent.setAction("BC_1");//这里要设置一个唯一标示 要跟清单文件的action里面的标识要保持一致。
                    BroadCastActivity.this.sendBroadcast(intent);
    //              Toast.makeText(BroadCastActivity.this,"点击了",Toast.LENGTH_LONG).show();
                    break;
                case R.id.bc2:
    
                    Intent intent2 = new Intent();
                    intent2.putExtra("msg", "这是一条有序广播");
                    intent2.setAction("BC_1");
                    BroadCastActivity.this.sendOrderedBroadcast(intent2,null);
                    break;
    
                case R.id.bc3:
                    break;
            }
        }
    //动态注册的广播一定要在程序结束 的时候 取消这个接收器
        @Override
        protected void onDestroy() {
            super.onDestroy();
            unregisterReceiver(bc2);
        }
    }
    

    清单文件注册receiver代码如下

    <receiver android:name=".BR1" >
        <intent-filter >
            <action android:name="BC_1"/>
        </intent-filter>
    </receiver>
        </application>

    两个接收器的代码BC1,BC1位静态注册 ,在清单文件里面注册 代码如上所示。

    package com.imooc.www.moocdemo;
    
    import android.content.Context;
    import android.content.Intent;
    import android.os.Bundle;
    import android.widget.Button;
    
    
    /**
     * Created by Administrator on 2016/5/13.
     */
    public class BR1 extends android.content.BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            String s = intent.getStringExtra("msg");
            System.out.println("recelier1 收到消息:"+s);
    
            Bundle bundle = getResultExtras(true);
            String s2 = bundle.getString("test");
            //这里在打印从BR1传来的数据s2的时候要给s2加上.toString()不知道为什么否则不能收到值 值为null
            System.out.println("通过广播传递的数据为:"+s2.toString());
        }
    }
    

    BC2接收器代码 动态注册

    package com.imooc.www.moocdemo;
    
    import android.content.Context;
    import android.content.Intent;
    import android.os.Bundle;
    
    
    /**
     * Created by Administrator on 2016/5/13.
     */
    public class BR2 extends android.content.BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
           //BC2为动态注册的广播 优先级要高于静态注册的BC1广播接受者所以BC2会优先
            //收到广播,在发送有序广播的时候在BC2接收到广播之后对广播进行拦截(abortBroadcast();)这样BC1
            //就不会收到广播,值得注意的是普通广播是不能被截获的 否则会发生异常
            String s = intent.getStringExtra("msg");
            System.out.println("recelier2 收到消息:"+s);
            //截获,终止广播的发送
    //        abortBroadcast();
    
    //BC2是动态注册的广播接收器优先级高于BC1的静态注册广播会先收到广播数据那么此时我们
            //可以在BC2收到广播后传递一些数据到BC1的接收器当中 但是这里不要进行耗时操作
            //此处通过Bundle 传递一个字符串数据  在BC1中接收
            Bundle bundle = new Bundle();
            bundle.putString("test","广播处理数据");
            setResultExtras(bundle);
            System.out.println("广播"+bundle.toString());
    
        }
    }
    





    展开全文
  • "发送有序广播" android :paddingLeft= "5dp" android :paddingRight= "5dp" android :background= "#FBFBFF" android :textSize= "20sp" /> RelativeLayout > 2点击发送有序广播按钮时事件处理 ...

    1.编写用户交互界面:

    <?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/activity_main"    android:layout_width="match_parent"    android:layout_height="match_parent"   android:background="@drawable/stitch_one"    tools:context="bzu.edu.cn.guangbo.MainActivity">

     

        <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_centerHorizontal="true"        android:layout_marginTop="80dp"        android:onClick="send"        android:text="发送有序广播"        android:paddingLeft="5dp"        android:paddingRight="5dp"        android:background="#FBFBFF"        android:textSize="20sp" />

    </RelativeLayout>

    2点击发送有序广播按钮时事件处理

    package bzu.edu.cn.guangbo;

    import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;

    public class MainActivity extends AppCompatActivity {

     

        @Override    protected void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);

            setContentView(R.layout.activity_main);

        }

        public void send(View view)

        {

            Intent intent=new Intent();

            //定义广播的事件类型        intent.setAction("Intercept_Stitch");

            //发送广播        sendOrderedBroadcast(intent,null);

     

        }

    }

    3.创建广播接收者

    package bzu.edu.cn.guangbo;

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

    public class MyBroadcastReceiverOne extends BroadcastReceiver {

        public MyBroadcastReceiverOne() {

        }

     

        @Override    public void onReceive(Context context, Intent intent) {

            // TODO: This method is called when the BroadcastReceiver is receiving        // an Intent broadcast.        //throw new UnsupportedOperationException("Not yet implemented");        Log.i("MyBroadcastReceiverOne","自定义的广播者one,接收到了广播事件");

     

     

        }

     

    }

    package bzu.edu.cn.guangbo;

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

    public class MyBroadcastReceiverTwo extends BroadcastReceiver {

        public MyBroadcastReceiverTwo() {

        }

     

        @Override    public void onReceive(Context context, Intent intent) {

            // TODO: This method is called when the BroadcastReceiver is receiving        // an Intent broadcast.        //throw new UnsupportedOperationException("Not yet implemented");        Log.i("MyBroadcastReceiverTwo","自定义的广播者two,接收到了广播事件");

                   

        }

    }

     

     

     

    package bzu.edu.cn.guangbo;

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

    public class MyBroadcastReceiverThree extends BroadcastReceiver {

        public MyBroadcastReceiverThree() {

        }

     

        @Override    public void onReceive(Context context, Intent intent) {

            // TODO: This method is called when the BroadcastReceiver is receiving        // an Intent broadcast.        //throw new UnsupportedOperationException("Not yet implemented");        Log.i("MyBroadcastReceiverThree","自定义的广播者three,接收到了广播事件");

        }

    }

    清单文件代码:

    <?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="bzu.edu.cn.guangbo">

     

        <application        android:allowBackup="true"        android:icon="@mipmap/ic_launcher"        android:label="@string/app_name"        android:supportsRtl="true"        android:theme="@style/AppTheme">

            <activity android:name=".MainActivity">

                <intent-filter>

                    <action android:name="android.intent.action.MAIN" />

     

                    <category android:name="android.intent.category.LAUNCHER" />

                </intent-filter>

            </activity>

     

     

            

            <receiver            android:name=".MyBroadcastReceiverOne"            android:enabled="true"            android:exported="true" >

                <intent-filter android:priority="1000">

                   <action android:name="Intercept_Stitch">

                   </action>

                </intent-filter>

                </receiver>

            <receiver            android:name=".MyBroadcastReceiverTwo"            android:enabled="true"            android:exported="true" >

                <intent-filter android:priority="200">

                    <action android:name="Intercept_Stitch">

                    </action>

                </intent-filter>

            </receiver>

     

            <receiver            android:name=".MyBroadcastReceiverThree"            android:enabled="true"            android:exported="true">

                <intent-filter android:priority="600">

                    <action android:name="Intercept_Stitch">

                    </action>

                </intent-filter>

            </receiver>

        </application>

     

    </manifest>

     

    展开全文
  • Android——发送广播(有序广播

    千次阅读 2019-01-26 20:27:16
    广播种可以跨进程的通信方式,这一点从前面接收系统广播的时候就可以看出来 了。因此在我们应用程序内发出的广播,其他的应用程序应该也是可以收到的。 1.我们需要再新建个 BroadcastTest2项目。 将项目创建好...
  • 发送有序广播

    2017-06-05 08:59:41
    以下程序是根据有序广播编写的发送有序广播。  有序广播:按照接收者的优先级接收,只有个广播接收者能接收消息,在此广播接收者中逻辑执行完毕,才会继续传递。  有序广播的特点,如下图所示:        1...
  • 知识点整理5.1 广播机制简介标准广播 有序广播 5.2 接受系统广播5.2.1 动态注册监听系统广播5.2.2 静态注册实现开机广播 5.3 自定义广播5.3.1 发送标准广播发送隐式广播:发送定向广播:5.3.2 发送有序广播5.4 使用...
  • Android 发送有序广播

    2017-06-07 20:05:22
    这次案例运行的效果就是点击下面运行图上的发送有序广播,会有在Android Studio上出现广播接收的提示信息。 这是此次案例的布局图: 1、首先要根据要求进行布局,具体的布局的代码如下: xmlns:android=...
  • 发送标准广播 1.新建广播接收器MyBroadcastReceiver package com.example.broadcasttest; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import...
  • ![![图片说明](https://img-ask.csdn.net/upload/201608/26/1472175698_447206.png)图片说明](https://img-ask.csdn.net/upload/201608/26/1472175691_112066.png)
  • Android-发送有序广播

    2017-06-04 17:42:43
    2.技术要点:通过sendOrderedBroadcast()方法发送一条有序广播。 (1)用户交互界面的设计与实现 (2)界面交互代码的设计与实现 (3)创建3个广播接受者: MyBroadcastReceiverOne.java MyBroadcastReceiverTwo....
  • 发送自定义广播 之 有序广播

    千次阅读 2016-04-11 16:17:02
    之前章节介绍了如何发送和接收标准广播。标准广播发送后,可以被多个广播...除了标准广播,还有有序广播。对于有序广播,广播接收器接收广播是有先后顺序的,而且前面的广播接收器还可以将广播截断,阻止其继续传播。
  • 首先我们来了解一下什么是有序广播有序广播种同步执行的广播,在广播发出之后,同一时刻只会有个广播接收器能够接收到这消息,当这个广播播放器的逻辑执行完毕后,广播才会继续传递。所以,此时的广播接收...
  • ,优缺点:和有序广播的优缺点相反! 二,发送广播的方法:sendBroadcast() 有序广播(Ordered Broadcast): ,优缺点 优点: 1,按优先级的不同,优先Receiver可对数据进行处理,并传给下个Receiver 2,通过...
  • Android中发送有序广播案例

    千次阅读 2017-06-07 18:12:32
    Android系统提供了两种广播类型,一种是有序广播,一种是有序广播。 (1)无序广播是完全异步执行,发送广播时所有监听这个广播的广播接收者都会收到此消息...实验要求:通过sendOrderedBroadeast()发送一条有序广播
  • 有序广播 发送出去的每广播都 按照一定的优先级进行接受二、无序广播 不管有没有接收者,准时播放区别:有许广播可以被终止,数据可以被修改;无序广播不可被重视,数据不可以被修改三、特殊广播接收者屏幕...
  • 目录 1. 广播机制简介 2. 接收系统广播 2.1 动态注册监听网络变化(代码中注册) ... # 问题:没有收到开机广播(已解决) ...3.2 发送有序广播 4. 使用本地广播:安全性考虑 5. 实践——强制下线功能 1....
  • BroadcastReceiver翻译为广播接收者,Broadcast是种广泛运用在应用程序之间的传输信息的机制,简单的可以理解为传统意义上的电台广播,通俗一点,发布失物招领 广播机制是个典型的发布—订阅模式,也就是我们所...
  • Android-有序广播简单例子

    千次阅读 2015-08-26 20:28:11
    放送广播的应用: MainActivity.java package com.example.android18; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent;...
  • 有序广播(Ordered broadcasts )则是种同步执行的广播,在广播发出之后,同一时刻只会有个广播接收器能够收到这广播消息,当这个广播接收器中的逻辑执行完毕后,广播才会继续传递。所以此时
  • 广播分为两种类型:标准广播和有序广播我们来看一下具体这两者的具体区别:1、发送标准广播我们需要先定义个广播接收器来准备接收此广播才行,否则也是白发。新建个MyBroadcastReceiver,代码如下:package ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,794
精华内容 4,717
关键字:

发送一条有序广播的代码