IntentFilter 是 Android 中用于過濾廣播消息的一種機制,它可以幫助我們根據特定條件來接收和處理廣播。在廣播接收器(BroadcastReceiver)中,IntentFilter 的作用是確定接收器能夠接收哪些類型的廣播消息。
在使用廣播接收器時,我們需要在 AndroidManifest.xml 文件中注冊接收器,并為其指定一個 IntentFilter。IntentFilter 可以包含多個條件,例如:
以下是一個簡單的示例,展示了如何在 AndroidManifest.xml 文件中注冊一個廣播接收器,并為其指定一個 IntentFilter:
package="com.example.myapp">
...
<application>
...
<receiver android:name=".MyBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.TIME_TICK" />
<data android:scheme="content" android:mimeType="text/plain" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
...
</application>
</manifest>
在這個示例中,我們注冊了一個名為 MyBroadcastReceiver 的廣播接收器。該接收器使用 IntentFilter 來指定它關心的廣播類型,包括設備啟動完成(BOOT_COMPLETED)、時間變化(TIME_TICK)等。此外,它還關心特定的數據類型(content 方案和 text/plain MIME 類型)和分類(默認分類)。
當滿足這些條件的廣播發出時,MyBroadcastReceiver 將會被調用,從而可以對廣播進行相應的處理。