Broadcast详解:有序广播
来源:互联网 发布:mac修容粉怎么用 编辑:程序博客网 时间:2024/06/06 22:31
以下是今天晚上学习的BroadcsatReceiver的有序广播的Demo
首先讲解一下:有序广播:orderBroadcast既然是有序的就涉及到几个广播接收器的先后顺序,我们Demo中创建两个Receiver的实例
首先在第一个广播接收器下我们声明接收器的优先权:android:priority:100以此来保证此接收器的第一接受优先权;第一个实例 如下:
public class MyBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Toast.makeText(context, "在MyBroadcastReceicer中收到广播", Toast.LENGTH_SHORT).show(); //abortBroadcast方法是截断该广播接收器的接受,在注册清单文件中我们注册了次接收器的优先权 // 所以在此之后的广播接收器已经不能接受到发出的广播了 abortBroadcast(); }}
下面是Andorramainfest.xml的关键代码来注册该接收器
<receiver android:name=".MyBroadcastReceiver" android:enabled="true" android:exported="true"> <!--android:priroty设置有序广播的优先级别--> <intent-filter android:priority="100"> <action android:name="com.example.shanshui.networkreceiver.MY_BROADCAST"/> </intent-filter></receiver>
在这之后我们在此Demo中添加一个Button来承载广播的发送,具体代码如下
:
Button btn= (Button) findViewById(R.id.button); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent=new Intent("com.example.shanshui.networkreceiver.MY_BROADCAST"); //修改为有序广播只用这一行代码: sendOrderedBroadcast(intent,null);// sendBroadcast(intent); } });
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
以下是第二个广播接收器的Demo
package com.example.shanshui.braodcastbemo2;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.widget.Toast;public class AnotherBroadcstReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // TODO: This method is called when the BroadcastReceiver is receiving // an Intent broadcast. Toast.makeText(context, "在AnotherBroadCast中接收到广播啦!", Toast.LENGTH_SHORT).show(); }}
同样的步骤也是需要给接收器在Androidmainfest.xml注册接收属性
<receiver android:name=".AnotherBroadcstReceiver" android:enabled="true" android:exported="true"> <intent-filter> <action android:name="com.example.shanshui.networkreceiver.MY_BROADCAST"/> </intent-filter></receiver>
这样启动两个活动后,,由于第一个广播接收器设置了order的优先级别,且调用了abortBroadcast()方法,因此在这之后的receiver就被截断了
总结:Anddroid的广播机制很强大,也是安卓开发中的要点,在这节内容中我们接触到了权限;permission的概念:涉及到用户隐私与权限的时候,必须声明权限:否则程序启动就会报错!
- Broadcast详解:有序广播
- Ordered Broadcast有序广播
- Broadcast详解(有序广播,无序广播)最终广播,Bundle传递参数
- Android Ordered Broadcast 有序广播
- android广播broadcast详解
- 17_Android中Broadcast详解(有序广播,无序广播)最终广播,Bundle传递参数,传递参数的时候指定权限
- 发送一条普通广播 有序广播 Broadcast 和 Receiver
- Android中的广播Broadcast详解
- Android中的广播Broadcast详解
- Android广播机制Broadcast详解
- Android中的广播Broadcast详解
- Android中的广播Broadcast详解
- Android中的广播Broadcast详解
- Android Broadcast------详解广播机制
- Android中的广播Broadcast详解
- Android中的广播Broadcast详解
- Android 为什么要设立有序广播 Ordered Broadcast
- APP开发实战157-Ordered broadcast(有序广播)简介
- macOS工作环境
- JSON解析之入门
- linux制作启动盘
- Java权限修饰符
- 使用Notification实现点赞、收藏功能
- Broadcast详解:有序广播
- <3> 自定义view 时钟
- the area hdu
- 使用HttpClient发送InputStream对象及发送文件
- Kotlin 语法特性
- Java中的重载与重写
- Lua知识点五 协同程序
- Android控件的隐藏与显示
- UNICODE,GBK,UTF-8区别