Android Intents,关于setClass()的问题

时间:2011-06-06 18:31:30

标签: android

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

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

3 个答案:

答案 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);
  }