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);
            }
        });
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值