Android 讲解:广播
来源:互联网 发布:淘宝中评对卖家的影响 编辑:程序博客网 时间:2024/05/18 06:16
广播简单讲解
android 中广播有注册,还有个触发。
只有注册了这个广播,才能触发这个广播。
注册广播需要一个处理广播的类,这个类需要继承BroadcastReceiver
类,和触发广播的标示。
而触发广播需要注册时候的标示就可以触发。
动态注册
动态注册是通过代码注册广播,只有程序在运行才能触发到广播。
class NetWorkChangeBroadcastReceiver extends BroadcastReceiver{}
类是接收广播的类。 registerReceiver(mb, filter)
注册个广播,两个参数分别是接收广播对象,和过滤广播标示的对象。
Intent intent = new Intent("xxx");
创建个intent,设置action sendBroadcast(intent);
发送个广播,此时xxx就是广播。
MainActivity .java
package cn.met0.android.chapter3;import android.app.Activity;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.os.Bundle;import android.widget.Toast;public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //注册广播 IntentFilter filter = new IntentFilter("xxx"); MyBroadcastReceiver mb = new MyBroadcastReceiver(); registerReceiver(mb, filter); //发送广播 Intent intent = new Intent("xxx"); sendBroadcast(intent); } class MyBroadcastReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { Toast.makeText(context, "触发了广播", Toast.LENGTH_SHORT).show();; } }}
静态注册
通过<application></application>
标签的 <receiver></receiver>
标签注册广播,<receiver></receiver>
的 android:name 属性为接收广播的类。
<intent-filter></intent-filter>
里面的<action/>
标签的android:name 属性为广播标示。
* AndroidManifest.xml*
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="cn.met0.android.chapter3" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="19" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name=".braodcastreceiver.NetWorkChangeBroadcastReceiver"> <intent-filter > <action android:name="xxx"/> </intent-filter> </receiver> </application></manifest>
发送广播
发送广播也有两种模式:
- 标准广播
- 在广播发送后,广播接收器基本同时接收。进行处理。
- 有序广播
- 在广播发送后,广播接收器优先级越高就先执行,而且还可以截断广播,不再向下执行.
标准广播
Intent intent = new Intent("xxx"); sendBroadcast(intent);
有序广播
Intent intent = new Intent("xxx"); sendOrderBroadcast(intent,null);
截断广播
在广播接收器执行’abortBroadcast()’函数。
设置广播接收优先级
动态注册:
使用IntentFilter 对象的setPriority函数。
静态注册: <intent-filter></intent-filter>
的android:priority 属性为接收广播的优先级
- Android 讲解:广播
- Android广播机制完美讲解
- 广播(Broadcast内部机制讲解)
- 广播(Broadcast内部机制讲解)
- android 广播
- android广播
- Android广播
- android广播
- android广播
- android广播
- android 广播
- android 广播
- android 广播
- android广播
- android广播
- android广播
- android 广播
- Android 广播
- ubuntu 14.04中打开squid服务并将本机作为代理服务器
- 【百金轻】:油价跌势愈猛 投资者更不应做急单
- TML5来了,推荐7个混合式Hybrid移动开发框架
- c#异常处理机制
- React Native For Android初探
- Android 讲解:广播
- 【iOS开发】cocoaPods安装和使用(2)
- python中读写文件及中文编码处理方法
- 第十一章】 SSH集成开发积分商城 之 11.3 实现积分商城层 ——跟我学spring3
- @Component-@Resource-@Repository-@Service-@Controller的区别和理解-------springMVC
- Linux创建crontab,定时将信息记录写入文件
- 每日简记(更新中...)
- Unity+NGUI性能优化方法总结
- Mongo性能测试-python脚本