我是靠谱客的博主 隐形雨,最近开发中收集的这篇文章主要介绍Android四大组件之BroadcastReceiver(广播)简单总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.静态注册广播

  • 通过向导新建一个BroadcastReceiver
  • 在清单文件的注册信息中添加intent
<receiver

android:name=".broad.MyReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.com.broad.myreceiver"/>
</intent-filter>
</receiver>
  • 在主函数中发布广播:
bt1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent it=new Intent("android.com.broad.myreceiver");
//
it.setAction("android.com.broad.myreceiver");
sendBroadcast(it);
}
});
  • 广播最多支持10s,不能写耗时的操作,一般都要交给service去干

2.设置开机广播并启动服务
- 开机广播:

<action android:name="android.intent.action.BOOT_COMPLETED" />
  • 需要加权限:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
  • 可以将广播设置如下:
public class MyReceiver extends BroadcastReceiver {
public MyReceiver() {
}
@Override
public void onReceive(Context context, Intent intent) {
Log.d("====","已经收到开机广播");
Intent it=new Intent(context, BroadService.class);
context.startService(it);
}
}
  • 然后就可以开机启动该服务:
====: 已经收到开机广播
====: 开机运行服务

3.动态注册广播(只能在程序里用,不能跨程序)–消息传递机制

  • 新建一个class:
public class DyBroadcast extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Log.d("====","接收到动态注册的广播");
}
}
  • 在Activity中进行动态注册:
DyBroadcast dyBroadcast=new DyBroadcast();
IntentFilter intentFilter=new IntentFilter();
intentFilter.addAction("com.my.first.broadcast");
registerReceiver(dyBroadcast,intentFilter);
  • 发送广播:
bt2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent("com.my.first.broadcast");
sendBroadcast(intent);
}
});

最后

以上就是隐形雨为你收集整理的Android四大组件之BroadcastReceiver(广播)简单总结的全部内容,希望文章能够帮你解决Android四大组件之BroadcastReceiver(广播)简单总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部