在阅读一些Android文档时,似乎intent-filter表示应用程序感兴趣的意图。在我的应用程序中,我有兴趣接收BluetoothAdapter.ACTION_STATE_CHANGED
。我没有在我最好的xml文件中声明它,但在我的应用程序中,我注册了一个BroadcastReceiver
过滤BluetoothAdapter.ACTION_STATE_CHANGED
并且我收到的事件很好。
有人可以解释为什么我会使用intent-filter?
答案 0 :(得分:1)
因此,即使应用程序尚未运行,您的应用程序也可以接收该事件。 见http://developer.android.com/guide/topics/manifest/receiver-element.html:
将广播接收器(BroadcastReceiver子类)声明为应用程序的组件之一。广播接收器使应用程序能够接收由系统或其他应用程序广播的意图,即使应用程序的其他组件未运行也是如此。
有两种方法可以使系统知道广播接收器:一种是使用此元素在清单文件中声明它。另一种是在代码中动态创建接收器并使用Context.registerReceiver()方法注册它。有关动态创建的接收器的更多信息,请参阅BroadcastReceiver类描述。