我刚开始学习android编程,在完成android Tab Layout教程时,我注意到他们用以下代码创建了一个新的Intent。
// Create an Intent to launch an Activity for the tab (to be reused)
intent = new Intent().setClass(this, ArtistsActivity.class);
到目前为止,我读过的所有书籍都使用
创建了新的意图intent = new Intent(this, ArtistActivity.class);
并且想知道两行代码之间是否存在差异。
答案 0 :(得分:7)
它们是等价的。
根据教程中的评论...
// Create an Intent to launch an Activity for the tab (to be reused)
似乎他们只使用.setClass()
方法而不是Constructor
使得类更明确,因为创建的Intent项将被重用,并且.setClass()
可能会被调用再次。
答案 1 :(得分:1)
没有实际的区别。它是如何完成的。一个是使用构造函数,而另一个是setter。但最终结果完全一样。请参阅documentation.
答案 2 :(得分:1)
根据某些条件,当同一个Intent可能有两个不同的类时,您可以使用.setClass
。这是一个例子:
Intent resultIntent = new Intent();
if (condition) {
resultIntent.setClass(getApplicationContext(), XXXX.class);
startActivity(resultIntent);
}else {
resultIntent.setClass(getApplicationContext(), YYYY.class);
}