android 广播
来源:互联网 发布:unity moba类手游源码 编辑:程序博客网 时间:2024/05/16 16:05
由于昨天有人问我广播的问题,当时我也有点忘记了,特地来写篇博客记录一下。
发送广播:
一、标准广播:
在广播发送出去后,所有的广播接收器都能同时接收这条广播。
Intent intent = new Intent("com.example.android_broadcast"); sendBroadcast(intent);
二、有序广播:
在广播发送出去后,只有一个广播接收器能先接收这条广播,当这个广播接收器处理完成后,广播才继续发送出去,如此继续下去。
Intent intent = new Intent("com.example.android_broadcast");sendOrderedBroadcast(intent, null);// sendOrderedBroadcast()方法接收两个参数,第一个参数仍然是Intent,第二个参数是一个与权限相关的字符串,这里传入null就行了。
接收广播:
接收广播的时候,我们必须注册才能接收广播,我们可以在代码里注册(动态接收)也可以在 AndroidManifest.xml 中注册(静态接收)。
代码里注册(动态接收):这种注册的接收必须在程序启动后才能接收广播,而且这种注册可以灵活控制注册与注销。
AndroidManifest.xml 中注册(静态接收):这种注册的接收可以在程序不启动的情况下接收广播。
一、动态接收:
新建一个Mybroadcastreceiver类继承BroadcastReceiver,当Mybroadcastreceiver接收到相对应的广播时, onReceive()方法就会得到执行。
package com.example.android_broadcast;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;public class Mybroadcastreceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {// TODO Auto-generated method stub// 处理相关逻辑}}
package com.example.android_broadcast;import android.app.Activity;import android.content.Intent;import android.content.IntentFilter;import android.os.Bundle;public class MainActivity extends Activity {private Mybroadcastreceiver mybroadcastreceiver;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//创建intentFilter实例并添加actionIntentFilter intentFilter = new IntentFilter();intentFilter.addAction("com.example.android_broadcast");//创建Mybroadcastreceiver实例mybroadcastreceiver = new Mybroadcastreceiver();//调用 registerReceiver()方法进行注册,使得mybroadcastreceiver接收"com.example.android_broadcast"广播registerReceiver(mybroadcastreceiver, intentFilter);Intent intent = new Intent("com.example.android_broadcast");sendBroadcast(intent, null);}@Overrideprotected void onDestroy() {// TODO Auto-generated method stubsuper.onDestroy();//注销广播unregisterReceiver(mybroadcastreceiver);}}
二、静态接收:
在AndroidManifest.xml中添加代码:
<receiver android:name=".Mybroadcastreceiver" > <intent-filter> <action android:name="com.example.android_broadcast" /> </intent-filter> </receiver>
三、有序接收:
在AndroidManifest.xml中添加代码:通过 android:priority 属性给广播接收器设置了优先级,优先级比较高的广播接收器就可以先收到广播。
有序接收只能静态注册。
<receiver android:name=".Mybroadcastreceiver" android:permission="100" > <intent-filter> <action android:name="com.example.android_broadcast" /> </intent-filter> </receiver>
0 0
- android 广播
- android广播
- Android广播
- android广播
- android广播
- android广播
- android 广播
- android 广播
- android 广播
- android广播
- android广播
- android广播
- android 广播
- Android 广播
- Android广播
- Android 广播
- Android广播
- android广播
- java访问控制修饰符,final修饰符
- linux jdk安装
- Request的getParameter和getAttribute方法的区别
- python3 连接SQLserver2014(包括用户名和密码设置)
- XStream应用总结
- android 广播
- B-spline Curves 学习之B样条曲线定义(4)
- Chapter 5: Neural Network
- Unity +HTC VIVE 虚拟现实开发— 警示线处理
- 软件项目版本号的命名规则及格式
- java简单的控制台聊天室
- [BZOJ1507][NOI2003]Editor(块状链表)
- JSP中的HTML代码
- Kail下安装php测试环境