据我所知,我可以通过清单静态注册广播接收器,也可以通过在活动中注册和取消注册接收器来以编程方式注册。在我的情况下,当我的代码不在内存中时,我希望操作系统实例化并调用我的广播接收器。所以我把我的接收器包含在我的清单中。不幸的是,如果我的代码不在内存中,我的广播接收器永远不会运行我很困惑为什么会这样。我在下面列出了我的清单的片段。如果有任何错误/遗漏,请告诉我。谢谢。
<receiver android:name=".DesktopConnectionReceiver"
android:enabled="true"
android:exported="true"
android:process=":remote">
<intent-filter>
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"/>
<action android:name="android.hardware.usb.action.USB_DEVICE_DETACHED" />
<action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED"/>
<action android:name="android.intent.action.UMS_CONNECTED"/>
</intent-filter>
</receiver>