这里我对静态意图调用方法与直接意图调用有点混淆。什么是创建新活动作为内存观点的更好选择?
据我所知,如果使用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的更好选择是什么?
答案 0 :(得分:1)
方法public static Intent newIntent()
是静态的,但这一切都是静态的。使用此静态方法的原因是,您可以在没有B.newIntent()
实例的情况下调用B
。
您传递给B.newIntent(this)
的上下文不是静态的,因此如果您在A
或B
中创建意图并不重要。
这在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
如何照顾它。