用意图开始活动的两种方式之间的区别?

时间:2014-06-30 12:46:35

标签: android android-intent

有人可以解释一下开始另一项活动的两种方式之间的区别吗?我已经尝试了两种,它们似乎也是一样的,所以我想弄清楚何时使用一个而不管它是否重要。

我认为后一个示例允许 ActivityA (this)将Intent发送到Android系统以从 ActivityB ActivityC >?不太确定,我只是猜测如果你把这个的上下文改成别的东西,但我不知道为什么有人会这样做。有人可以解释一个的优点和缺点,可能是一个例子吗?

Intent name = new Intent("android.intent.action.NAME") 

                vs 

Intent name = new Intent(this, NameActivity.class)

签出:

2 个答案:

答案 0 :(得分:3)

  

有人可以解释开始另一项活动的两种方式之间的区别吗?

第一个使用隐式Intent。所有系统都声称支持此Intent操作,可能有零个,一个或多个活动。

第二个使用明确的Intent。由于项目中只有一个NameActivity.class,因此可能只有一个匹配项。假设NameActivity实际上是一个活动,它就是那个将要开始的活动。

  

所以我试图找出何时使用其中一个而不管它是否重要

明确的Intent方法主要用于您自己的应用中的自己的活动。

隐式Intent方法主要用于与其他应用互操作(例如,启动PDF查看器)。

答案 1 :(得分:0)

使用Intent(this, NameActivity.class)是由编译器检查的语法,可以重构。因此,这允许对代码进行编译时检查。 Intent("android.intent.action.NAME")只是一个字符串。当您更改类名称或包时,不会修改此字符串,因此只能通过测试应用程序来找到它。

应该首先在你的应用内部调用。