Android四大组件之广播接收器(二)
2016-03-06 17:20
766 查看
接上篇,Android四大组件之广播接收器(一)本文主要总结广播的发送。
标准广播
1、首先创建接收器MyBroadcastReceiver:
2、静态注册接收器
3、发送标准广播
有序广播
基于标准广播改动发送方法即可
广播拦截
接收器优先级设置
完整广播拦截代码:(本代码主要演示有序广播的拦截)
接收器一
接收器二
发送代码
注册关键代码
标准广播
1、首先创建接收器MyBroadcastReceiver:
public class MyBraodcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Toast.makeText(context, "received in MyBroadcastReceiver", Toast.LENGTH_SHORT).show(); } }
2、静态注册接收器
<receiver android:name=".MyBraodcastReceiver"> <intent-filter android:priority="333"> <action android:name="com.horizon.broadcastTest"/> </intent-filter> </receiver>
3、发送标准广播
Intent intent = new Intent("com.horizon.broadcastTest"); sendBroadcast(intent);
有序广播
基于标准广播改动发送方法即可
Intent intent = new Intent("com.horizon.broadcastTest"); sendOrderedBroadcast(intent, null);
广播拦截
abortBroadcast();
接收器优先级设置
<intent-filter android:priority="111">
完整广播拦截代码:(本代码主要演示有序广播的拦截)
接收器一
public class MyBraodcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Toast.makeText(context, "received in MyBroadcastReceiver", Toast.LENGTH_SHORT).show(); abortBroadcast(); } }
接收器二
public class AnotherReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Toast.makeText(context, "received in AnotherReceiver", Toast.LENGTH_SHORT).show(); } }
发送代码
public class MainActivity extends AppCompatActivity {
private Button receive;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
receive = (Button) findViewById(R.id.sendBroadcast);
receive.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent("com.horizon.broadcastTest"); sendOrderedBroadcast(intent, null);
}
});
}
}
注册关键代码
<!-- 分别注册两个接收器-->
<receiver android:name=".AnotherReceiver">
<intent-filter android:priority="111">
<action android:name="com.horizon.broadcastTest"/>
</intent-filter>
</receiver>
<receiver android:name=".MyBraodcastReceiver"> <intent-filter android:priority="333"> <action android:name="com.horizon.broadcastTest"/> </intent-filter> </receiver>
相关文章推荐
- android基础---->Toast的使用
- android contentProvider 小例子
- Android SO逆向2-实例分析
- Android SO逆向1-ARM介绍
- Android菜鸟认知——Intent和Intent filter初印象
- Android 官方推荐 : DialogFragment 创建对话框
- 也来看看Android的ART运行时
- 提高开发效率--日志工具类
- Android ScrollView如何判断上下滑的方向
- 一种在android中实现MVP模式的新思路
- MVC, MVP, MVVM比较以及区别-Android
- android 布局优化
- Android消息机制分析
- Vlc for Android 全面阐述
- 如何学习Android及如何利用Android赚钱
- 第一天
- 一步一步学ROP之Android ARM 32位篇
- Android检测IBeacon热点
- 开发过程中的一些资料收集---
- Android BLE开发之Android手机与BLE终端通信