这可能是一个非常愚蠢的问题,但我不太清楚答案。为什么我们需要android中的intent过滤器?
- 我的隐式意图包含一个动作,数据&类别(可选),我在发送或者通过startActivity或startService意图通过。
这样的事情,我们通常做的,
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(android.content.Intent.EXTRA_TEXT, "Standing on the Moon!");
startActivity(intent);
,然后我们用不同的方式完成的,清单文件使用一个意图过滤器相同的操作类似
<activity android:name="ShareActivity">
<intent-filter>
<action android:name="android.intent.action.SEND"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="text/plain"/>
</intent-filter>
</activity>
我的问题 - 既宣称这是为了相同的目的,他们宣布的两种不同方式的方式,他们是否有不同的意义?
第一个是调用,第二个是宣告。这就像说你不需要方法签名,因为你调用了你的方法,所以他们必须存在。 – njzk2
在启动您自己的应用程序的组件时请不要使用隐式Intents - 使用明确引用您的ShareActivity.class的Intent。不使用隐式意图的原因是您无法保证您的应用程序组件将被使用,并且您可能会看到意外的行为。 – Squonk