Context.RegisterReceiver 方法

定义

重载

名称 说明
RegisterReceiver(BroadcastReceiver, IntentFilter, String, Handler, ReceiverFlags)

注册以接收意向广播,以在计划程序上下文中运行。 有关详细信息,请参阅 registerReceiver(BroadcastReceiver、IntentFilter、int) 和 registerReceiver(BroadcastReceiver、IntentFilter、String、Handler)。 有关意向广播的详细信息,请参阅 BroadcastReceiver。 截至Build.VERSION_CODES。UPSIDE_DOWN_CAKE,当应用处于缓存状态时,系统可以在队列中放置上下文注册的广播。 当应用离开缓存状态(例如返回到前台)时,系统将传送任何排队的广播。 某些广播的多个实例可能会合并到一个广播中。 截至Build.VERSION_CODES。ICE_CREAM_SANDWICH,使用此方法注册的接收方将正确遵循为要广播的意向指定的 Intent.setPackage(String)。 在此之前,它将被忽略并传递到所有匹配的已注册接收器。 如果将其用于安全性,请小心。 参数接收器 BroadcastReceiver:用于处理广播的 BroadcastReceiver。

RegisterReceiver(BroadcastReceiver, IntentFilter, String, Handler)

注册以接收意向广播,以在 var<计划程序>/var< 的>上下文中运行。

RegisterReceiver(BroadcastReceiver, IntentFilter, String, Handler, ActivityFlags)
已过时.

注册以接收意向广播,以在 var<计划程序>/var< 的>上下文中运行。

RegisterReceiver(BroadcastReceiver, IntentFilter, ActivityFlags)
已过时.

注册以接收意向广播,接收方可以选择向即时应用公开。

RegisterReceiver(BroadcastReceiver, IntentFilter)

注册在主活动线程中运行的 BroadcastReceiver。

RegisterReceiver(BroadcastReceiver, IntentFilter, ReceiverFlags)

注册以接收意向广播,接收方可以选择向即时应用公开。 有关详细信息,请参阅 registerReceiver(BroadcastReceiver,IntentFilter)。 默认情况下,即时应用无法与其他应用程序中的接收方交互,这使你可以公开即时应用可以与之交互的接收器。 有关意向广播的详细信息,请参阅 BroadcastReceiver。 截至Build.VERSION_CODES。UPSIDE_DOWN_CAKE,当应用处于缓存状态时,系统可以在队列中放置上下文注册的广播。 当应用离开缓存状态(例如返回到前台)时,系统将传送任何排队的广播。 某些广播的多个实例可能会合并到一个广播中。 截至Build.VERSION_CODES。ICE_CREAM_SANDWICH,使用此方法注册的接收方将正确遵循为要广播的意向指定的 Intent.setPackage(String)。 在此之前,它将被忽略并传递到所有匹配的已注册接收器。 如果将其用于安全性,请小心。 参数接收器 BroadcastReceiver:用于处理广播的 BroadcastReceiver。 此值可以为 null。

RegisterReceiver(BroadcastReceiver, IntentFilter, String, Handler, ReceiverFlags)

注册以接收意向广播,以在计划程序上下文中运行。 有关详细信息,请参阅 registerReceiver(BroadcastReceiver、IntentFilter、int) 和 registerReceiver(BroadcastReceiver、IntentFilter、String、Handler)。 有关意向广播的详细信息,请参阅 BroadcastReceiver。 截至Build.VERSION_CODES。UPSIDE_DOWN_CAKE,当应用处于缓存状态时,系统可以在队列中放置上下文注册的广播。 当应用离开缓存状态(例如返回到前台)时,系统将传送任何排队的广播。 某些广播的多个实例可能会合并到一个广播中。 截至Build.VERSION_CODES。ICE_CREAM_SANDWICH,使用此方法注册的接收方将正确遵循为要广播的意向指定的 Intent.setPackage(String)。 在此之前,它将被忽略并传递到所有匹配的已注册接收器。 如果将其用于安全性,请小心。 参数接收器 BroadcastReceiver:用于处理广播的 BroadcastReceiver。

public Android.Content.Intent? RegisterReceiver(Android.Content.BroadcastReceiver? receiver, Android.Content.IntentFilter? filter, string? broadcastPermission, Android.OS.Handler? scheduler, Android.Content.ReceiverFlags flags);
member this.RegisterReceiver : Android.Content.BroadcastReceiver * Android.Content.IntentFilter * string * Android.OS.Handler * Android.Content.ReceiverFlags -> Android.Content.Intent

参数

receiver
BroadcastReceiver

要注册的广播接收器。

filter
IntentFilter

选择要接收的广播的意向筛选器。

broadcastPermission
String

广播公司必须保留的权限的名称,以便向此接收方发送意向。 如果为 null,则不需要任何权限。

scheduler
Handler

接收方回调运行的处理程序。

flags
ReceiverFlags

控制此操作的标志。

返回

找到与筛选器匹配的第一个粘滞意向,如果没有筛选器,则为 null。

注解

注册以接收意向广播,以在计划程序上下文中运行。 有关详细信息,请参阅 registerReceiver(BroadcastReceiver、IntentFilter、int) 和 registerReceiver(BroadcastReceiver、IntentFilter、String、Handler)。 有关意向广播的详细信息,请参阅 BroadcastReceiver。 截至Build.VERSION_CODES。UPSIDE_DOWN_CAKE,当应用处于缓存状态时,系统可以在队列中放置上下文注册的广播。 当应用离开缓存状态(例如返回到前台)时,系统将传送任何排队的广播。 某些广播的多个实例可能会合并到一个广播中。 截至Build.VERSION_CODES。ICE_CREAM_SANDWICH,使用此方法注册的接收方将正确遵循为要广播的意向指定的 Intent.setPackage(String)。 在此之前,它将被忽略并传递到所有匹配的已注册接收器。 如果将其用于安全性,请小心。 参数接收器 BroadcastReceiver:用于处理广播的 BroadcastReceiver。

Java文档android.content.Context.registerReceiver(android.content.BroadcastReceiver, android.content.IntentFilter, java.lang.String, android.os.Handler, int)

本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。

适用于

RegisterReceiver(BroadcastReceiver, IntentFilter, String, Handler)

注册以接收意向广播,以在 var<计划程序>/var< 的>上下文中运行。

[Android.Runtime.Register("registerReceiver", "(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;)Landroid/content/Intent;", "GetRegisterReceiver_Landroid_content_BroadcastReceiver_Landroid_content_IntentFilter_Ljava_lang_String_Landroid_os_Handler_Handler")]
public abstract Android.Content.Intent? RegisterReceiver(Android.Content.BroadcastReceiver? receiver, Android.Content.IntentFilter? filter, string? broadcastPermission, Android.OS.Handler? scheduler);
[<Android.Runtime.Register("registerReceiver", "(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;)Landroid/content/Intent;", "GetRegisterReceiver_Landroid_content_BroadcastReceiver_Landroid_content_IntentFilter_Ljava_lang_String_Landroid_os_Handler_Handler")>]
abstract member RegisterReceiver : Android.Content.BroadcastReceiver * Android.Content.IntentFilter * string * Android.OS.Handler -> Android.Content.Intent

参数

receiver
BroadcastReceiver

要处理广播的 BroadcastReceiver。

filter
IntentFilter

选择要接收的意向广播。

broadcastPermission
String

广播公司必须保留的权限的名称,以便向此接收方发送意向。 如果为 null,则不需要任何权限。

scheduler
Handler

标识将接收意向的线程的处理程序。 如果为 null,将使用进程的主线程。

返回

发现第一个粘滞意向与 var<filter>/var< 匹配>,如果没有,则为 null。

属性

注解

注册以接收意向广播,以在 var<计划程序>/var< 的>上下文中运行。 有关详细信息,请参阅 #registerReceiver(BroadcastReceiver, IntentFilter)。 这样,便可以对谁可以向接收方广播意向,或让接收方在与主应用程序线程不同的线程中运行的权限。

有关意向广播的详细信息,请参阅 BroadcastReceiver

因此android.os.Build.VERSION_CODES#UPSIDE_DOWN_CAKE,当应用处于缓存状态时,系统可以将上下文注册的广播放置在队列中。 当应用离开缓存状态(例如返回到前台)时,系统将传送任何排队的广播。 某些广播的多个实例可能会合并到一个广播中。

从此 android.os.Build.VERSION_CODES#ICE_CREAM_SANDWICH起,向此方法注册的接收方将正确遵循 Intent#setPackage(String) 为要广播的意向指定的接收方。 在此之前,它将被忽略并传递到所有匹配的已注册接收器。 如果将其用于安全性,请小心。

对于面向android.os.Build.VERSION_CODES#UPSIDE_DOWN_CAKE应用,#RECEIVER_EXPORTED#RECEIVER_NOT_EXPORTED如果接收方未注册系统广播SecurityException将引发接收方,则必须指定或必须指定。 请参阅 #registerReceiver(BroadcastReceiver, IntentFilter, String, Handler, int) 向标志注册接收方。

Java文档android.content.Context.registerReceiver(android.content.BroadcastReceiver, android.content.IntentFilter, java.lang.String, android.os.Handler)

本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。

另请参阅

适用于

RegisterReceiver(BroadcastReceiver, IntentFilter, String, Handler, ActivityFlags)

注意

This method has an incorrect enumeration type. Use the overload that takes ReceiverFlags instead.

注册以接收意向广播,以在 var<计划程序>/var< 的>上下文中运行。

[Android.Runtime.Register("registerReceiver", "(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;I)Landroid/content/Intent;", "GetRegisterReceiver_Landroid_content_BroadcastReceiver_Landroid_content_IntentFilter_Ljava_lang_String_Landroid_os_Handler_IHandler", ApiSince=26)]
[System.Obsolete("This method has an incorrect enumeration type. Use the overload that takes ReceiverFlags instead.")]
public abstract Android.Content.Intent? RegisterReceiver(Android.Content.BroadcastReceiver? receiver, Android.Content.IntentFilter? filter, string? broadcastPermission, Android.OS.Handler? scheduler, Android.Content.ActivityFlags flags);
[<Android.Runtime.Register("registerReceiver", "(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;I)Landroid/content/Intent;", "GetRegisterReceiver_Landroid_content_BroadcastReceiver_Landroid_content_IntentFilter_Ljava_lang_String_Landroid_os_Handler_IHandler", ApiSince=26)>]
[<System.Obsolete("This method has an incorrect enumeration type. Use the overload that takes ReceiverFlags instead.")>]
abstract member RegisterReceiver : Android.Content.BroadcastReceiver * Android.Content.IntentFilter * string * Android.OS.Handler * Android.Content.ActivityFlags -> Android.Content.Intent

参数

receiver
BroadcastReceiver

要处理广播的 BroadcastReceiver。

filter
IntentFilter

选择要接收的意向广播。

broadcastPermission
String

广播公司必须保留的权限的名称,以便向此接收方发送意向。 如果为 null,则不需要任何权限。

scheduler
Handler

标识将接收意向的线程的处理程序。 如果为 null,将使用进程的主线程。

flags
ActivityFlags

接收器的其他选项。 对于目标android.os.Build.VERSION_CODES#UPSIDE_DOWN_CAKE应用,#RECEIVER_EXPORTED#RECEIVER_NOT_EXPORTED如果接收方未注册系统广播SecurityException将引发接收方,则必须指定。 如果 #RECEIVER_EXPORTED 已指定,则接收方可以另外指定 #RECEIVER_VISIBLE_TO_INSTANT_APPS。 有关系统广播操作的完整列表,请参阅 Android SDK 中的BROADCAST_ACTIONS.TXT文件。 如果同时 #RECEIVER_EXPORTED 指定并 #RECEIVER_NOT_EXPORTED 指定了一个,将引发一个 IllegalArgumentException

返回

发现第一个粘滞意向与 var<filter>/var< 匹配>,如果没有,则为 null。

属性

注解

注册以接收意向广播,以在 var<计划程序>/var< 的>上下文中运行。 有关详细信息,请参阅 #registerReceiver(BroadcastReceiver, IntentFilter, int)#registerReceiver(BroadcastReceiver, IntentFilter, String, Handler)

有关意向广播的详细信息,请参阅 BroadcastReceiver

因此android.os.Build.VERSION_CODES#UPSIDE_DOWN_CAKE,当应用处于缓存状态时,系统可以将上下文注册的广播放置在队列中。 当应用离开缓存状态(例如返回到前台)时,系统将传送任何排队的广播。 某些广播的多个实例可能会合并到一个广播中。

从此 android.os.Build.VERSION_CODES#ICE_CREAM_SANDWICH起,向此方法注册的接收方将正确遵循 Intent#setPackage(String) 为要广播的意向指定的接收方。 在此之前,它将被忽略并传递到所有匹配的已注册接收器。 如果将其用于安全性,请小心。

Java文档android.content.Context.registerReceiver(android.content.BroadcastReceiver, android.content.IntentFilter, java.lang.String, android.os.Handler, int)

本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。

适用于

RegisterReceiver(BroadcastReceiver, IntentFilter, ActivityFlags)

注意

This method has an incorrect enumeration type. Use the overload that takes ReceiverFlags instead.

注册以接收意向广播,接收方可以选择向即时应用公开。

[Android.Runtime.Register("registerReceiver", "(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;I)Landroid/content/Intent;", "GetRegisterReceiver_Landroid_content_BroadcastReceiver_Landroid_content_IntentFilter_IHandler", ApiSince=26)]
[System.Obsolete("This method has an incorrect enumeration type. Use the overload that takes ReceiverFlags instead.")]
public abstract Android.Content.Intent? RegisterReceiver(Android.Content.BroadcastReceiver? receiver, Android.Content.IntentFilter? filter, Android.Content.ActivityFlags flags);
[<Android.Runtime.Register("registerReceiver", "(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;I)Landroid/content/Intent;", "GetRegisterReceiver_Landroid_content_BroadcastReceiver_Landroid_content_IntentFilter_IHandler", ApiSince=26)>]
[<System.Obsolete("This method has an incorrect enumeration type. Use the overload that takes ReceiverFlags instead.")>]
abstract member RegisterReceiver : Android.Content.BroadcastReceiver * Android.Content.IntentFilter * Android.Content.ActivityFlags -> Android.Content.Intent

参数

receiver
BroadcastReceiver

要处理广播的 BroadcastReceiver。

filter
IntentFilter

选择要接收的意向广播。

flags
ActivityFlags

接收器的其他选项。 对于目标android.os.Build.VERSION_CODES#UPSIDE_DOWN_CAKE应用,#RECEIVER_EXPORTED#RECEIVER_NOT_EXPORTED如果接收方未注册系统广播SecurityException将引发接收方,则必须指定。 如果 #RECEIVER_EXPORTED 已指定,则接收方可以另外指定 #RECEIVER_VISIBLE_TO_INSTANT_APPS。 有关系统广播操作的完整列表,请参阅 Android SDK 中的BROADCAST_ACTIONS.TXT文件。 如果同时 #RECEIVER_EXPORTED 指定并 #RECEIVER_NOT_EXPORTED 指定了一个,将引发一个 IllegalArgumentException

返回

发现第一个粘滞意向与 var<filter>/var< 匹配>,如果没有,则为 null。

属性

注解

注册以接收意向广播,接收方可以选择向即时应用公开。 有关详细信息,请参阅 #registerReceiver(BroadcastReceiver, IntentFilter)。 默认情况下,即时应用无法与其他应用程序中的接收方交互,这使你可以公开即时应用可以与之交互的接收器。

有关意向广播的详细信息,请参阅 BroadcastReceiver

因此android.os.Build.VERSION_CODES#UPSIDE_DOWN_CAKE,当应用处于缓存状态时,系统可以将上下文注册的广播放置在队列中。 当应用离开缓存状态(例如返回到前台)时,系统将传送任何排队的广播。 某些广播的多个实例可能会合并到一个广播中。

从此 android.os.Build.VERSION_CODES#ICE_CREAM_SANDWICH起,向此方法注册的接收方将正确遵循 Intent#setPackage(String) 为要广播的意向指定的接收方。 在此之前,它将被忽略并传递到所有匹配的已注册接收器。 如果将其用于安全性,请小心。

Java文档android.content.Context.registerReceiver(android.content.BroadcastReceiver, android.content.IntentFilter, int)

本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。

适用于

RegisterReceiver(BroadcastReceiver, IntentFilter)

注册在主活动线程中运行的 BroadcastReceiver。

[Android.Runtime.Register("registerReceiver", "(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;", "GetRegisterReceiver_Landroid_content_BroadcastReceiver_Landroid_content_IntentFilter_Handler")]
public abstract Android.Content.Intent? RegisterReceiver(Android.Content.BroadcastReceiver? receiver, Android.Content.IntentFilter? filter);
[<Android.Runtime.Register("registerReceiver", "(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;", "GetRegisterReceiver_Landroid_content_BroadcastReceiver_Landroid_content_IntentFilter_Handler")>]
abstract member RegisterReceiver : Android.Content.BroadcastReceiver * Android.Content.IntentFilter -> Android.Content.Intent

参数

receiver
BroadcastReceiver

要处理广播的 BroadcastReceiver。

filter
IntentFilter

选择要接收的意向广播。

返回

发现第一个粘滞意向与 var<filter>/var< 匹配>,如果没有,则为 null。

属性

注解

注册在主活动线程中运行的 BroadcastReceiver。 <var>接收器</var> 将使用与主应用程序线程中的 var<filter>/var< 匹配>的任何广播意向调用。

系统可以广播“粘滞”的意向 -- 这些意向在广播完成后保持四处走动,以发送到任何以后的注册。 如果 IntentFilter 匹配其中一个粘滞意向,则此函数 <将返回该意向强>且</强> 发送到 <var>接收器</var> ,就好像它刚刚广播一样。

可能有多个粘性意向与 var filter/var< 匹配>,在这种情况下,每个意向都将发送到 <var>接收器</var>。<> 在这种情况下,函数只能直接返回其中一个;系统任意决定返回的其中哪一项。

如果知道要注册的意向是粘滞的,可以为 var 接收器</var> 提供 null<。> 在这种情况下,没有注册接收方 -- 函数只返回与 var<filter>/var< 匹配的>粘滞意向。 如果有多个匹配项,则适用上述规则。

有关意向广播的详细信息,请参阅 BroadcastReceiver

因此android.os.Build.VERSION_CODES#UPSIDE_DOWN_CAKE,当应用处于缓存状态时,系统可以将上下文注册的广播放置在队列中。 当应用离开缓存状态(例如返回到前台)时,系统将传送任何排队的广播。 某些广播的多个实例可能会合并到一个广播中。

从此 android.os.Build.VERSION_CODES#ICE_CREAM_SANDWICH起,向此方法注册的接收方将正确遵循 Intent#setPackage(String) 为要广播的意向指定的接收方。 在此之前,它将被忽略并传递到所有匹配的已注册接收器。 如果将其用于安全性,请小心。

对于面向android.os.Build.VERSION_CODES#UPSIDE_DOWN_CAKE应用,#RECEIVER_EXPORTED#RECEIVER_NOT_EXPORTED如果接收方未注册系统广播SecurityException将引发接收方,则必须指定或必须指定。 请参阅 #registerReceiver(BroadcastReceiver, IntentFilter, int) 向标志注册接收方。

注意:无法从<组件调用此方法 >em;BroadcastReceiver</em>,来自在应用程序的清单中声明的 BroadcastReceiver。 但是,从另一个在运行时 #registerReceiver注册的 BroadcastReceiver 调用此方法是可以的,因为此类已注册的 BroadcastReceiver 的生存期与注册它的对象相关联。

Java文档android.content.Context.registerReceiver(android.content.BroadcastReceiver, android.content.IntentFilter)

本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。

另请参阅

适用于

RegisterReceiver(BroadcastReceiver, IntentFilter, ReceiverFlags)

注册以接收意向广播,接收方可以选择向即时应用公开。 有关详细信息,请参阅 registerReceiver(BroadcastReceiver,IntentFilter)。 默认情况下,即时应用无法与其他应用程序中的接收方交互,这使你可以公开即时应用可以与之交互的接收器。 有关意向广播的详细信息,请参阅 BroadcastReceiver。 截至Build.VERSION_CODES。UPSIDE_DOWN_CAKE,当应用处于缓存状态时,系统可以在队列中放置上下文注册的广播。 当应用离开缓存状态(例如返回到前台)时,系统将传送任何排队的广播。 某些广播的多个实例可能会合并到一个广播中。 截至Build.VERSION_CODES。ICE_CREAM_SANDWICH,使用此方法注册的接收方将正确遵循为要广播的意向指定的 Intent.setPackage(String)。 在此之前,它将被忽略并传递到所有匹配的已注册接收器。 如果将其用于安全性,请小心。 参数接收器 BroadcastReceiver:用于处理广播的 BroadcastReceiver。 此值可以为 null。

public Android.Content.Intent? RegisterReceiver(Android.Content.BroadcastReceiver? receiver, Android.Content.IntentFilter? filter, Android.Content.ReceiverFlags flags);
member this.RegisterReceiver : Android.Content.BroadcastReceiver * Android.Content.IntentFilter * Android.Content.ReceiverFlags -> Android.Content.Intent

参数

receiver
BroadcastReceiver

要注册的广播接收器。

filter
IntentFilter

选择要接收的广播的意向筛选器。

flags
ReceiverFlags

控制此操作的标志。

返回

找到与筛选器匹配的第一个粘滞意向,如果没有筛选器,则为 null。

注解

注册以接收意向广播,接收方可以选择向即时应用公开。 有关详细信息,请参阅 registerReceiver(BroadcastReceiver,IntentFilter)。 默认情况下,即时应用无法与其他应用程序中的接收方交互,这使你可以公开即时应用可以与之交互的接收器。 有关意向广播的详细信息,请参阅 BroadcastReceiver。 截至Build.VERSION_CODES。UPSIDE_DOWN_CAKE,当应用处于缓存状态时,系统可以在队列中放置上下文注册的广播。 当应用离开缓存状态(例如返回到前台)时,系统将传送任何排队的广播。 某些广播的多个实例可能会合并到一个广播中。 截至Build.VERSION_CODES。ICE_CREAM_SANDWICH,使用此方法注册的接收方将正确遵循为要广播的意向指定的 Intent.setPackage(String)。 在此之前,它将被忽略并传递到所有匹配的已注册接收器。 如果将其用于安全性,请小心。 参数接收器 BroadcastReceiver:用于处理广播的 BroadcastReceiver。 此值可以为 null。

Java文档android.content.Context.registerReceiver(android.content.BroadcastReceiver, android.content.IntentFilter, int)

本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。

适用于