两种方式开始活动的区别?

时间:2010-02-09 18:55:39

标签: android android-activity android-intent

我在Android中看到了以下两个启动活动的例子:

示例1

Intent myIntent = new Intent(CurrentActivity.this, NextActivity.class);
CurrentActivity.this.startActivity(myIntent);

示例2

// Calling activity
NextActivity.show(this)

// In the called activity
static void show(Context context) {
        final Intent intent = new Intent(context, NextActivity.class);
        context.startActivity(intent);
}

这两个示例之间的明显区别似乎是您将活动如何创建的逻辑附加到活动的实现中。还有其他关键的区别吗? (例如,被叫活动被告知要等到被叫活动在一种情况下完成,而不是在另一种情况下,等等。)

2 个答案:

答案 0 :(得分:4)

我认为你的2种方法没有区别,除了你的第一种方法中的2行代码碰巧位于一个恰好位于第二个活动类的静态方法中。

为启动活动而执行的实际代码行是相同的。因此,这两种方法的行为是相同的。

答案 1 :(得分:1)

此外,代码可以缩短为

context.startActivity(new Intent (context, NextActivity.class));

只有当你需要设置标志或添加额外内容等时,才有理由创建一个Intent实例作为字段。