1.常驻型广播
常驻型广播,当你的应用程序关闭了,如果有广播信息来,你写的广播接收器同样的能接受到,
他的注册方式就是在你的应用程序中的AndroidManifast.xml进行注册。通常说这种方式是静态注册
下面是配置例子
<!-- 桌面 -->
<receiver android:name=".widget.DeskWidgeWeather">
<meta-data android:name="android.appwidget.provider" android:resource="@xml/widget_weather_provider" />
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
<action android:name="action_weather"/>
</intent-filter>
</receiver>
2.非常驻型广播
当应用程序结束了,广播自然就没有了,比如你在activity中的onCreate或者onResume中注册广播接收器
在onDestory中卸载广播接收器。这样你的广播接收器就一个非常驻型的了。这种也叫动态注册。
比如写一个监听SDcard状态的广播接收器
SdcardStateChanageReceiver sdcardStateReceiver;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_MEDIA_REMOVED);
filter.addAction(Intent.ACTION_MEDIA_EJECT);
filter.addAction(Intent.ACTION_MEDIA_MOUNTED);
filter.addDataScheme("file");
sdcardStateReceiver = new SdcardStateChanageReceiver();
registerReceiver(sdcardStateReceiver,filter);
}
@Override
protected void onDestroy(){
unregisterReceiver(sdcardStateReceiver);
}
class SdcardStateChanageReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent)
{
String state=android.os.Environment.getExternalStorageState();
System.out.println("SDCard 发生改变! 状态:"+state);
//checkSDCard();
}
public void checkSDCard(){
String state=android.os.Environment.getExternalStorageState();
System.out.println(state);
if(state.equals(android.os.Environment.MEDIA_REMOVED ) || state .equals(android.os.Environment.MEDIA_UNMOUNTED)){
System.out.println("SDCard 已卸载!");
}
}
}
分享到:
相关推荐
本主题将深入探讨两种广播注册方式:静态注册和动态注册,并以监听网络状态为例来展示它们的工作原理。 首先,静态注册是通过在AndroidManifest.xml文件中声明BroadcastReceiver来实现的。这种方式的广播接收器在...
本例中是使用aidl Android Interface Definition Language 实现两种方式拦截来电 使用广播监听拦截(其中有动态广播注册和静态广播注册)和phoneManager类监听手机状态拦截
本篇将深入探讨两种广播注册方式:静态注册(Static Registration)和动态注册(Dynamic Registration),以及它们之间的差异。 **静态注册** 静态注册是在AndroidManifest.xml文件中通过标签定义广播接收器。这种...
总结来说,Android的广播注册方式包括静态和动态两种,每种都有其适用场景。同时,虽然BroadcastReceiver本身不直接支持接口回调,但我们可以通过自定义接口的方式来实现广播事件的传递,以便在需要的地方处理这些...
android BroadcastReceiver两种注册方式:1.在AndroidManifest.xml中注册 2.在Activity中注册。两种注册BroadcastReceiver方法的比较: 现在我们了解了两种注册BroadcastReceiver的方法之后,需要考虑一下这两种方法...
注册BroadcastReceiver有两种方式:静态注册和动态注册。静态注册是在AndroidManifest.xml文件中声明,应用启动时就会自动注册;动态注册则在代码中完成,通常在需要监听蓝牙状态时注册,在不需要时注销,以节省系统...
本文将对比分析Android中注册广播的两种主要方式:常驻型广播(静态注册)和非常驻型广播(动态注册)。 1. 常驻型广播(静态注册) 常驻型广播在应用关闭后仍然能够接收到广播通知,即使应用没有运行,这也是它的...
本篇文章将详细讲解Android中的两种广播机制:显式广播和隐式广播,并通过设置会议通知和闹钟的例子来阐述它们的应用。 一、显式广播 显式广播是直接指定接收者的BroadcastReceiver类,发送方知道确切的接收者是谁...
广播接收器有两种注册方式:静态注册和动态注册。静态注册在AndroidManifest.xml文件中进行,广播接收器会在应用启动时自动创建,即使应用不在后台运行也能接收到广播。动态注册则在代码中完成,需要在需要监听广播...
在Android应用开发中,广播接收器分为静态注册和动态注册两种方式。本文主要聚焦于动态注册广播接收器的概念、优势、使用方法以及相关实践。 动态注册广播接收器是在代码运行时通过编程方式进行注册的,与静态注册...
此外,Android提供了有序广播和普通广播两种类型。有序广播按照优先级顺序逐个处理,每个Receiver都有机会处理Intent,而普通广播则是并行处理,所有Receiver几乎同时收到广播。 广播还可以配合PendingIntent使用,...
本篇将深入探讨如何通过线程和服务两种方式实现网络下载,并利用广播来同步更新进度条和通知栏。这两种方法都是为了优化用户体验,确保用户能够实时了解下载状态。 首先,我们来看线程下载。在Android中,由于主线...
在Android中,广播分为两种类型:普通广播(Normal Broadcast)和有序广播(Ordered Broadcast)。普通广播是同时发送给所有接收者,而有序广播则按照接收者的优先级顺序依次处理。在本示例中,我们可能使用的是有序...
注册分为静态注册和动态注册两种方式。静态注册是在manifest文件中添加标签,这样系统在启动时就会自动创建广播接收器。例如: ```xml <receiver android:name=".MyBroadcastReceiver"> <action android:name=...
本文将深入探讨Android广播的工作原理、类型、注册方式以及如何创建和接收广播。 首先,Android广播分为两种类型:系统广播和普通广播。系统广播是由Android系统发起的,例如设备关机、开机、电池电量低等。这些...
详细介绍广播的用法,代码有注释,简明易懂,实现广播的两种形式,有序广播和无序广播;详细介绍广播的用法,代码有注释,简明易懂,实现广播的两种形式,有序广播和无序广播;详细介绍广播的用法,代码有注释,简明...
本视频教程“072集-静态和动态注册广播接收者”深入探讨了这两种不同的注册方式及其应用场景。 首先,我们要了解什么是广播。在Android系统中,广播是一种全局的通知机制,当系统或者应用触发某个事件时,会发送一...
注册方式有两种:静态注册(在AndroidManifest.xml中)和动态注册(在代码中)。静态注册可以让接收器在应用后台运行时依然可以接收广播,但可能会增加内存占用。动态注册则在需要时注册,在不需要时注销,可以节省...
3. 注册BroadcastReceiver:有两种注册方式,静态注册和动态注册。静态注册是在AndroidManifest.xml文件中添加receiver标签,而动态注册则是在代码中进行,通常在Activity的onCreate()方法中。 4. 广播数据传递:在...
广播接收器可以通过静态和动态两种方式注册: 1. **静态注册**:在`AndroidManifest.xml`文件中进行注册。 2. **动态注册**:在运行时通过代码注册。 在示例代码中,使用的是动态注册的方式。下面是如何动态注册...