IntentFilter 是 Android 中用于處理隱式 Intent 的一種機制。當一個應用程序發送一個隱式 Intent 時,系統會根據 IntentFilter 的配置來確定哪個組件(Activity、Service 或 BroadcastReceiver)能夠處理這個 Intent。以下是 IntentFilter 處理隱式意圖的基本步驟:
<intent-filter>
<action android:name="com.example.ACTION_MY_ACTION" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
</activity>
在 IntentFilter 中指定相關的 action、category 和 data。這些元素用于過濾接收到的 Intent。例如,上面的示例中,我們指定了一個名為 “com.example.ACTION_MY_ACTION” 的 action,一個默認類別(android.intent.category.DEFAULT)和一個文本類型(text/plain)的數據。
在發送隱式 Intent 時,確保 Intent 包含與 IntentFilter 匹配的 action、category 和 data。例如:
Intent intent = new Intent("com.example.ACTION_MY_ACTION");
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.setType("text/plain");
startActivity(intent);
通過這種方式,IntentFilter 可以幫助處理隱式 Intent,實現組件之間的解耦和復用。