案例--拦截有序广播
来源:互联网 发布:安慕希网络促销方案 编辑:程序博客网 时间:2024/05/22 09:02
1.创建一个名字为“拦截有序广播”的应用程序相应的布局文件(activity_main.xml)
<?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:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.bz0209.bryouxu.MainActivity" android:background="@drawable/stitch_one"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="发送有序广播" android:textSize="18sp" android:layout_centerHorizontal="true" android:layout_marginTop="80dp" android:background="#FBFBFF" android:paddingLeft="5dp" android:paddingRight="5dp" android:onClick="send"/></RelativeLayout>
上述布局文件定义了一个Button按钮并为按钮注册了一个send事件,当按钮被触发时会发送一条有序广播
2.MainActivity代码如下:
package com.example.bz0209.bryouxu;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); }}
上述代码中sendOrderedBroadcast(intent,null);用于发送一个有序广播,在该方法中接受两个参数,第一个是指定的意图,第二个指定接受者权限,如果不想让所有的接受者看到,可以显示的指定接受者的权限。
3.添加三个广播接受者
(1)MyBroadcastReceiverOne
package com.example.bz0209.bryouxu;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.util.Log;/** * Created by Administrator on 2017/6/5. */public class MyBroadcastReceiverOne extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Log.i("MyBroadcastReceiverOne","自定义的广播接受者One,接受到广播事件"); }}
(2.)MyBroadcastReceivertwo
package com.example.bz0209.bryouxu;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.util.Log;/** * Created by Administrator on 2017/6/5. */public class MyBroadcastReceivertwo extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Log.i("MyBroadcastReceivertwo","自定义的广播接受者two,接受到广播事件"); }}
(3.)MyBroadcastReceiverThree
package com.example.bz0209.bryouxu;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.util.Log;/** * Created by Administrator on 2017/6/5. */public class MyBroadcastReceiverThree extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Log.i("MyBroadcastReceiverThree","自定义的广播接受者Therr,接受到广播事件"); }}
4.清单文件:AndroidManifest
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.bz0209.bryouxu"> <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"> <intent-filter android:priority="1000"> <action android:name="Intercept_stitch"/> </intent-filter> </receiver> <receiver android:name=".MyBroadcastReceivertwo"> <intent-filter android:priority="200"> <action android:name="Intercept_stitch"/> </intent-filter> </receiver> <receiver android:name=".MyBroadcastReceiverThree"> <intent-filter android:priority="100"> <action android:name="Intercept_stitch"/> </intent-filter> </receiver> </application></manifest>
三个广播接受者的优先级是:MyBroadcastReceiverOne、MyBroadcastReceivertwo、MyBroadcastReceiverThree;需要注意的是在优先级不同时按照优先级进行接受,优先级相同的则看在清单文件的先后顺序。
注意:自从安卓更新了版本,下安卓6.0以上的版本需要获取运行时权限,6.0以下的版本不需要,平时检测代码可以采用4.4的版本。
阅读全文
0 0
- 拦截有序广播案例
- 案例-----拦截有序广播
- 案例---拦截有序广播
- 案例--拦截有序广播
- 广播--案例:拦截有序广播
- Android--有序广播的实例解析--案例《拦截有序广播》
- 有序广播的实例解析--android案例《拦截有序广播》
- Android--广播的类型及拦截有序广播案例
- 广播接收者——案例:拦截有序广播
- 拦截有序广播
- 拦截有序广播
- 拦截一条有序广播
- 拦截有序广播
- 有序广播拦截
- 拦截有序广播
- 有序广播拦截
- 有序广播案例实现
- 发送有序广播案例
- Quorum 机制在开源分布式系统中的应用
- CentOS下MySQL忘记root密码解决方法【转载】
- hive数据压缩技术001
- 数据挖掘领域十大经典算法初探
- Linux常用指令
- 案例--拦截有序广播
- frameset框架
- C语言程序设计(37)
- PHP中常量的声明及使用时需注意的细节
- 进程的创建与可执行程序的加载
- 修改系统时间导致DB2报错SQL0903N,RC=2
- mysql查询树结构
- Multi-Programming-7 wait() and notify()
- 数据结构-图 概念篇