Android Intents,关于setClass()的问题

我刚开始学习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); 

并想知道两行代码之间是否存在差异。

它们是等价的。

根据教程中的评论……

 // Create an Intent to launch an Activity for the tab (to be reused) 

看来他们只是使用.setClass()方法而不是Constructor ,它使一个类更加明确,因为创建的Intent项将被重用,并且可能会再次调用.setClass()

没有实际的区别。 它是如何完成的。 一个是使用构造函数,而另一个是setter。 但最终结果完全一样。 请参阅文档。

当相同的Intent根据某些条件可能有两个不同的类时,您可以使用.setClass 。 这是一个例子:

  Intent resultIntent = new Intent(); if (condition) { resultIntent.setClass(getApplicationContext(), XXXX.class); startActivity(resultIntent); }else { resultIntent.setClass(getApplicationContext(), YYYY.class); }