-1

This might be a very stupid question, but I am not quite clear on the answer.

  1. My implicit intent contains an action, data & category (optional), which I pass while sending the intent either through startActivity or startService.

something like this we normally do,

Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(android.content.Intent.EXTRA_TEXT, "Standing on the Moon!");
startActivity(intent);

and then we have the same operation done in a different way, using an intent filter in manifest file like

<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>

My question - is both the way to declare this is for the same purpose, the two different ways they are declared, does they hve different significance???

4

1 回答 1

4

我记得,将您的应用程序引用为清单文件中的意图过滤器将使其他应用程序知道您有能力处理该意图。因此,如果您能够发送邮件并且您在清单中以这种方式注册自己,那么另一个应用程序可以使用您的来发送电子邮件。

这在图库应用程序中很常见。应用程序很少创建自己的,除非它们本身是图库应用程序。因此,他们会询问 Android 系统有哪些可用的图库/邮件应用程序,并让您从列表中选择一个。当您将自己注册为能够处理此意图的应用程序时,您会在此列表中找到您的应用程序。

我确实相信这是两者之间的一个主要区别,因为其他应用程序不知道程序化实例化。

于 2015-07-20T18:58:17.200 回答