我试图了解android中意图的工作原理。根据文档,对于接收意图的应用程序,它必须通过过滤器中的所有三个功能。来自Google文档:
<activity android:name="MainActivity">
<!-- This activity is the main entry, should appear in app launcher -->
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="ShareActivity">
<!-- This activity handles "SEND" actions with text data -->
<intent-filter>
<action android:name="android.intent.action.SEND"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="text/plain"/>
</intent-filter>
<!-- This activity also handles "SEND" and "SEND_MULTIPLE" with media data -->
<intent-filter>
<action android:name="android.intent.action.SEND"/>
<action android:name="android.intent.action.SEND_MULTIPLE"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="application/vnd.google.panorama360+jpg"/>
<data android:mimeType="image/*"/>
<data android:mimeType="video/*"/>
</intent-filter>
共享活动有2个过滤器。假设它没有通过第一个过滤器。最后一个intent过滤器有多个动作和数据类型。如果意图仅通过过滤器的某些功能而不是所有功能,该怎么办?它还能用吗?
由于
答案 0 :(得分:0)
意图必须通过活动中声明的任何意图过滤器。要传递intent过滤器,intent必须匹配给定intent过滤器中的任何操作,任何类别和任何数据。请阅读android documentation了解详情