简体   繁体   English

检索已注册的BroadcastReceiver的实例以注销

[英]Retrieve instance of a registered BroadcastReceiver to unregister

in my app I have 2 BroadcastReceivers . 在我的应用程序中,我有2个BroadcastReceivers Lets call the AReceiver and BReceiver . 让我们调用AReceiverBReceiver AReceiver is just listening for android.intent.action.BOOT_COMPLETED so it can register BReceiver for a different action, if its turned on in the settings of my app. AReceiver只是在监听android.intent.action.BOOT_COMPLETED因此可以注册BReceiver进行其他操作(如果在我的应用程序设置中将其打开)。

So I have a PreferenceActivity that can switch the status of my app, which means: 所以我有一个PreferenceActivity ,可以切换我的应用程序的状态,这意味着:

  • Status: On 状态:开启
    • AReceiver will not register BReceiver at boot AReceiver 不会在启动时注册BReceiver
    • Changing from Off -> On should register BReceiver 从关闭更改为打开应注册BReceiver
  • Status: Off 状态:关闭
    • AReceiver will register BReceiver at boot AReceiver将在启动时注册BReceiver
    • Changing from On -> Off should unregister BReceiver 从开->关更改应注销BReceiver

Here is the problem I'm having. 这是我遇到的问题。 How can I unregister BReceiver if it was either registered in AReceiver or in the PreferenceActivity , which could have been closed in the meanwhile? 如果BReceiver是在AReceiverPreferenceActivity注册的,那么该如何注销呢? I don't know what I have to pass to unregisterBroadcastReceiver() as an argument, since it wants the instance of the registered receiver. 我不知道我必须传递给unregisterBroadcastReceiver()作为参数,因为它需要已注册接收者的实例。

How do I retrieve the instance of a registered BroadcastReceiver so I can unregister it? 如何检索已注册的BroadcastReceiver的实例,以便注销该实例?

You should be able to put the BReceiver in the manifest (default disabled) and then enable and disable it at any time. 您应该能够将BReceiver放置在清单中(默认为禁用),然后随时启用和禁用它。 Have a look here 在这里看看

You can make that activation of BReceiver is always done via AReceiver (even when switching OFF->ON in preferences). 您可以使BReceiver的激活始终通过AReceiver进行(即使在首选项中将OFF-> ON设置为开)。 So that AReceiver stores the instance of BReceiver and is able to unregister it. 这样AReceiver可以存储BReceiver的实例并能够注销它。 Does it make sense ? 是否有意义 ?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM