静态与非静态活动意图调用方法

时间:2016-04-19 10:51:35

标签: java android android-intent static static-methods

这里我对静态意图调用方法与直接意图调用有点混淆。什么是创建新活动作为内存观点的更好选择?

据我所知,如果使用static调用intent方法,它包含应用程序生命的内存。这是真的吗?

让我们举个例子:

在活动B中

public static Intent newIntent(Context context) {
       Intent intent = new Intent(context, B.class);
       return intent;
   }

从活动A调用活动B

在活动A中

 startActivity(B.newIntent(this));

另外,直接调用活动无法在完成后调用()调用活动。正确?

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

我仍然认为第二个更好,然后作为你的代码点和记忆的观点。但我看到许多项目包含第一个(静态调用)方法。所以我想知道调用新Activity的更好选择是什么?

1 个答案:

答案 0 :(得分:1)

方法public static Intent newIntent()是静态的,但这一切都是静态的。使用此静态方法的原因是,您可以在没有B.newIntent()实例的情况下调用B

您传递给B.newIntent(this)的上下文不是静态的,因此如果您在AB中创建意图并不重要。

这在A

startActivity(B.newIntent(this));

与A

中的情况没有什么不同
startActivity(newIntent(this));

private Intent newIntent(Context context) {
   Intent intent = new Intent(context, B.class);
   return intent;
}
  

所以我想知道调用新Activity的更好选择是什么?

在功能上它没有任何区别。如果内存使用量有任何差异,那么你将无法注意到它。

就编码风格而言,最好在A中保持意图的创建,因为A正在开始B,而B应该不在乎A如何照顾它。