简单 易懂的了解android中的Broadcast Receiver
来源:互联网 发布:手机dts音乐播放软件 编辑:程序博客网 时间:2024/05/22 03:36
写这篇博客的目的首先偶是预防以后自己忘了可以随时拿出来看,其次 能帮到一些人也是不错的..
1.android中的广播分为:
①标准广播
特点: 广播发出后所有的接收器都可以 同时 接收到 广 播, 而且无法拦截
②有序广播
特点:广播发出之后,接收者有先后之分,并且前面的接收者可以拦截广播,导致后面的接收的接收不到
2.广播是通过一方发送另一方接收的,发送的一方只需要给Intent一个意图,像”com.xu.text”,然后调用sendBroadcast(intent)方法就可以了(有序广播调用sendOrderedBroadcast(intent,null);),接收广播者(让一个类继承BroadcastReceiver,然后实现BroadcastReceiver的onReceice()方法即可,广播内容在该方法中操作)
3.广播有俩种注册方式:
静态注册(AndroidManifest.xml中)
动态注册(代码实现)
动态注册:
public class MainActivity extends AppCompatActivity implements View.OnClickListener { private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button= (Button) findViewById(R.id.btn); button.setOnClickListener(this); } @Override public void onClick(View v) { Intent intent=new Intent("com.example"); sendBroadcast(intent); }}
这里通过点击Button发送一条广播,发送广播的代码很简单,
Intent intent=new Intent("com.example"); sendBroadcast(intent);
前面讲了
接收广播:
在另一个Module的Activity中:
public class MainActivity extends AppCompatActivity { private IntentFilter intentFilter; private BroadcastTest broadcast; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); intentFilter=new IntentFilter(); //选择要接收哪个广播 意图添加进去,保持一致 intentFilter.addAction("com.example"); broadcast=new BroadcastTest(); registerReceiver(broadcast,intentFilter); } @Override protected void onDestroy() { super.onDestroy(); unregisterReceiver(broadcast); } class BroadcastTest extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { Toast.makeText(context, "收到其他应用的广播", Toast.LENGTH_SHORT).show(); } }}
registerReceiver();方法用来接收广播,里面需要俩个参数,一个BroadcastReceiver,一个IntentFilter,把这俩个对象传进去..广播的内容会在BroadcastReceiver执行具体处理,动态注册要记得取消注册广播,在onDestory()中 unregisterReceiver(broadcast);取消注册
静态注册:
在AndroidManifest.xml中,
<receiver android:name=".MyReceiver" android:enabled="true" android:exported="true"> <intent-filter> <action android:name="com.example"/> </intent-filter> </receiver>
enabled表示是否允许启用这个广播接收器
exported表示是否允许接收本应用程序以外的广播 true表示允许
在android studio中可以点击file–new–Other—BraodcastReceiver直接创建一个广播接收者,AndroidManifest.xml中只需要把
<intent-filter> <action android:name="com.example"/> </intent-filter>
意图写出来就可以了,发送方和动态一样…
- 简单 易懂的了解android中的Broadcast Receiver
- Android的Broadcast Receiver
- Android Broadcast Receiver 简单例子
- Android开发笔记---Broadcast Receiver的简单使用
- 【安卓篇】Android的Broadcast Receiver
- Android的Broadcast Receiver组件
- Android中的BroadCast Receiver(广播)详解
- android的broadcast receiver的使用
- Android的广播事件处理Broadcast Receiver
- Android的四大组件之Broadcast Receiver
- android的广播broadcast和receiver
- android开发广播的使用Broadcast Receiver
- android学习:broadcast receiver的使用
- 4.1.3.1 Android Broadcast-Receiver的心得
- android 的四大组件之Broadcast Receiver
- android 之broadcast receiver
- Android Broadcast receiver 编程
- Android Broadcast receiver 编程
- openstack-kilo--issue(五) neutron-agent服务实际是active的-但是显示为XXX
- MapReduce寻找共同好友
- 修改 bootstrap table 默认detailRow样式
- 二分图匹配 hdu 1068
- Linux中fork()函数详解
- 简单 易懂的了解android中的Broadcast Receiver
- 设计模式-组合模式
- Oracle COALESC()E函数
- 【撸码caffe 一】syncedmen.hpp
- jsoup抓取页面元素
- Mybatis分页插件
- SpringMVCⅠ基础
- 游戏开发中的人工智能(八):描述式 AI 及描述引擎
- jsp笔记一