Android自定义广播的动态,静态注册以及跨平台接收广播自定义目录标题)*

Android自定义广播的动态,静态注册以及跨平台接收广播自定义目录标题)

一、静态注册
静态注册就是在AndroidManifest.xml配置文件中注册

第一步,新建BroadcastReceiver
如图

Android自定义广播的动态,静态注册以及跨平台接收广播自定义目录标题)*_第1张图片

我们写个简单的打印语句以检测是否成功

Android自定义广播的动态,静态注册以及跨平台接收广播自定义目录标题)*_第2张图片

修改AndroidMainfest.xml配置文件中的代码

Android自定义广播的动态,静态注册以及跨平台接收广播自定义目录标题)*_第3张图片
最后在MainActivity.java文件中添加按钮点击事件

先要在MainActivity的xml文件中添加一个按钮

然后再在MainActivity.java文件中添加按钮点击事件

Android自定义广播的动态,静态注册以及跨平台接收广播自定义目录标题)*_第4张图片

intent.setAction(“CCTV_1”);//这里就是我们自定义的action名
intent.setPackage(“com.xwl.guangbo”);//安卓8.0后静态注册的广播无法接收需要添加Intent.setComponent();
在安卓9.0后对静态注册则需发送端中需要指定app所在的包名我这是添加的包名
这就是静态注册了

二、动态注册
第一步我们还是新建BroadcastReceiver这里的步骤参考上面
接下来我们我们直接在MainActivity实现
首先我们还是得添加按钮点击事件,步骤同上
Button b1=findViewById(R.id.button);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(“CCTV_1”);
intent.putExtra(“dtgb”,“动态广播”);
intent.setPackage(“com.xwl.guangbo4”);
sendBroadcast(intent);
}
});
}
这里我们点击事件中的代码有所不同主要是加了句
intent.putExtra(“dtgb”,“动态广播”);
这句是往intent中加入数据,没错这次我们要传输数据
回到正题我们还需要注册广播
MyReceiver mr=new MyReceiver();//实例化广播类(上 面步骤中创建的类)对象
IntentFilter intf=new IntentFilter(“CCTV_1”);//实例化 IntentFilter对象,这个 IntentFilter相当于一个过滤器筛选registerReceiver(mr,intf);//注册广播接收

/*动态注册需在Acticity生命周期onDestroy通过
*unregisterReceiver()方法移除广播接收器,

  • 优化内存空间,避免内存溢出
    */
    @Override
    protected void onDestroy() {
    super.onDestroy();
    unregisterReceiver(mr);
    }
    这里MyReceiver的对象mr因为是在全局改完后MainActivity是这样的

Android自定义广播的动态,静态注册以及跨平台接收广播自定义目录标题)*_第5张图片
最后我们再修改MyReceiver中的代码来取得数据
Toast.makeText(context,intent.getStringExtra(“dtgb”),Toast.LENGTH_SHORT).show();
Android自定义广播的动态,静态注册以及跨平台接收广播自定义目录标题)*_第6张图片
以上就是动态注册了

三、 跨平台接收广播
这里我们要建两个工程也就是两个app一个作为发送方
一个作为接收方

发送方
我们直接在MainActivity中写一个按钮点击事件
监听代码如下
Intent intent=new Intent(“CCTV_1”);
intent.putExtra(“xigua”,“16.5”);
sendBroadcast(intent);
我们还是传输数据最后来测试结果
Android自定义广播的动态,静态注册以及跨平台接收广播自定义目录标题)*_第7张图片

接收方
还是新建BroadcastReceiver
再MainActivity中动态注册
注意action与发送方一致
Android自定义广播的动态,静态注册以及跨平台接收广播自定义目录标题)*_第8张图片
然后再修改MyReceiver中代码写一个打印语句测试
Android自定义广播的动态,静态注册以及跨平台接收广播自定义目录标题)*_第9张图片

你可能感兴趣的:(mysql,数据库)