我刚接触BroadcastReceiver,目前正在尝试。据我所知,在Xamarin中,我们只需要使用BroadcastReceiver属性装饰我们的接收器子类,Xamarin将生成必要的条目,放入清单中。这是我目前拥有的:
[BroadcastReceiver(Enabled = true, Exported = true)]
[IntentFilter(new[] { "myaction" })]
class MyReceiver : BroadcastReceiver
{
}
当我在应用程序内部发送广播时,或者当我从其他应用程序发送广播而此应用程序正在运行时,一切都正常。问题是,当我没有运行此应用程序并且尝试从其他应用程序发送广播(使用正确的意图过滤器)时,我将无法接收广播。
我在这个问题上做了一些阅读,似乎对于本地Java,我们需要在清单文件中显式声明/定义BroadcastReceiver才能使其能够接收广播,即使它没有运行。据我所知,这对于Xamarin并不需要,所以现在有些困惑。你们有任何见解吗?
附加信息:
- 我正在调试模式下运行(Visual Studio)
- 我已经至少启动了应用程序的主要活动
- Android 4.3