Android 的四大组件
Activity、Service、BroadCast、ContentProvider
BroadCast
四大组件之一,必须在清单(androidManifest.xml)文件中进行注册
是在组件之间传播数据的一种机制
APP哪块用到了广播
电话、 短信、电量、wifi是否连接
Anroid中出现的第一个错误
在组件中进程耗时操作,就会报application no response(ANR)
广播接收器
广播接收器分为 标准广播和有序广播
标准广播
动态注册 使用java代码注册
静态注册 直接在androidManfest.xml中
实现简单静态注册
1.创建广播接收者,
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.i("BroadCast", "onReceive: "+intent.getStringExtra("info"));
}
}
2.在AndroidManfest.xml中对广播接收者进行注册
<receiver
android:name=".MyReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="houpu"/>
</intent-filter>
</receiver>
3.发送广播
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main4);
bt_broad=findViewById(R.id.bt_broad);
bt_broad.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent();
intent.setPackage(getPackageName());
intent.setAction("houpu");
intent.putExtra("info","大嘴巴子");
sendBroadcast(intent);
}
});
实现动态注册
1.创建广播接收者
class Mybroadcast extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Log.i("BroadCast", "onReceive: "+intent.getStringExtra("login"));
}
}
2.对广播接收者进行注册
//2.对广播接收者进行注册
mybroadcast=new Mybroadcast();
IntentFilter intentFilter=new IntentFilter();
intentFilter.addAction("houpu1");
registerReceiver(mybroadcast,intentFilter);
3.发送广播
//3.发送广播
bt_broad2=findViewById(R.id.bt_broad2);
bt_broad2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent();
intent.setAction("houpu1");
intent.putExtra("login","动态大嘴巴子");
sendBroadcast(intent);
}
});
本文介绍了Android的四大组件之一——BroadcastReceiver,包括其在应用程序中的作用,如监听电话、短信等系统事件。详细讲解了如何在AndroidManifest.xml中静态注册和通过Java代码动态注册广播接收器,并给出了实例代码。同时,提到了在组件中进行耗时操作可能导致的ANR问题。
301

被折叠的 条评论
为什么被折叠?



