这两种意图声明之间有什么区别吗?

时间:2011-12-16 07:07:26

标签: android

步骤1> Intent i = new Intent(home.this,secondactivity.class);

步骤2> Intent i = new Intent(“android.intent.action.secondactivity”);

我有点困惑的是,它在创建一个类似的意图时会有什么不同 第1步或第2步

在第一个中,我指定了类的当前实例,活动应该通过主页活动中的按钮单击进入下一个活动e.x,然后它将转到第二个活动。 在第二个我没有这样做。

是否有任何区别或两者都相同?

3 个答案:

答案 0 :(得分:3)

他们是不同的:

在第一个变体中,您明确说明要执行哪个组件/活动,因此可以保证您将执行该组件。在这种情况下,您的第二个活动甚至不需要指定intent-filter。

在第二个变体中,您指定一个ACTION名称。为此,您的第二个活动必须具有具有相同操作的intent过滤器。但请注意,如果有任何其他应用程序的活动具有具有相同操作名称的intent过滤器,则在启动活动时,用户将获得一个活动选择器对话框以选择要使用的活动。

如果您总是希望在按钮单击时执行第二个活动,则应使用第一个变体。

如果要创建API,则应使用第二种变体,即您希望其他应用程序能够挂钩到您的应用程序工作流程中。

答案 1 :(得分:0)

当您从外面的某个地方调用SecondActivity时,可以使用step2。让我们说从广播接收者或服务。

答案 2 :(得分:0)

你的第二个意图是错误的,“android.intent.action.secondactivity”不是一个动作。