Android关于广播的静态注册和动态注册及广播数据写入界面的心得体会 记得在我上学的时候,每个班级的教室里都会装有一个喇叭,这些喇叭都是接入到
记得在我上学的时候,每个班级的教室里都会装有一个喇叭,这些喇叭都是接入到学校的广播室的,一旦有什么重要的通知,就会播放一条广播来告知全校的师生。大家平常使用的安卓广播也有类似的机制,安卓为了让程序获得系统的状态信息,有内置的系统级广播,但是很多时候满足不了需求,所以自定义广播就使用十分广泛。下面聊聊自定义广播的两种方式
静态静态注册是直接在AndroidManifest里面先进行注册,添加receiter,其中需要写入你的Broadcast Receiver的名字,我这里是MyReceiver,也可以写其他的名字,enabled和exported都设置成true;这些都会默认生成,根据自己的需要更改,自己要手动生成的就是intent-filter,添加action,写入action的名字(你自己及定义的什么名字就用什么名字,公司为了区分开都是用com.xxx.cn),添加权限uses-permission
动态注册广播是在活动中,我这里先在布局新建了一个按钮,在活动中初始化自己的广播,设置action的名字,然后设置按钮点击事件,利用Intent intent=new Intent();设置action的名字,我这里设置的是不规范的,我就随意些了一个名字,然后sendBroadcast(intent);进行发送广播,要注意两点:1、要把广播设置成全局变量private MyReceiver myReceiver;2、动态注册的广播要用onDestroy进行关闭
动态的比较灵活,注册在活动中开启和关闭可自由掌握,静态的相对来说比较直接,就在Manifest里面注册,然后哪里要用直接声明action就可以使用,但是安卓8.0以后的静态注册大部分被取消了,这就有点坑了,看来还是希望代码可以灵活运用,去使用动态注册
关于动态注册广播并把广播中的数据记录到界面中 在广播中:根据上面的动态注册进行添加,先添加一个接口作为代理,我这里为了简介明了直接使用拼音缩写DL,代理是为了写入数据所以在里面添加不返回值的方法void xr(String s);写入数据以后要将自己带着数据传送去到达的界面,写一个传送的方法将代理传进去,最后写入要传输的数据dl.xr(s);
在活动中:首先要添加实现广播的接口implements MyReceiver.DL,既然是要记录数据,那应该记录在哪里呢,我这里在布局文件中添加了一个TextView,并在活动中设置为私有的全局变量,然后实现传送到这个界面的方法myReceiver.CS(this);最后将数据写入TextView中
public class MainActivity extends AppCompatActivity implements MyReceiver.DL{
private MyReceiver myReceiver;
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myReceiver=new MyReceiver();
IntentFilter intentFilter=new IntentFilter("CCTV_1");
reGISterReceiver(myReceiver,intentFilter);
myReceiver.CS(this);
tv=findViewById(R.id.textView);
Button button=findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent("CCTV_1");
intent.putExtra("s","呆呆兽");
sendBroadcast(intent);
}
});
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(myReceiver);
}
@Override
public void xr(String s) {
tv.setText(s);
}
}
很多脚本会在传送数据的过程截取数据,但是现在也有很多反脚本程序防止恶意的窃取数据。
第一次发博客,刚学android技术小白,理解不深,写的不好,会有很多错误,还需向前辈多多学习,真诚地希望大佬们不吝赐教,感谢。
在此要感谢我的老师金庭波,讲课通俗易懂,耐心教导了我们,让我在为人做事方面都有所收获。https://me.csdn.net/jintingbo
--结束END--
本文标题: Android关于广播的静态注册和动态注册及广播数据写入界面的心得体会
本文链接: https://lsjlt.com/news/29369.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-01-21
2023-10-28
2023-10-28
2023-10-27
2023-10-27
2023-10-27
2023-10-27
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0