为什么有两个“新意图”?他们会做出两种不同的意图吗?

时间:2012-09-22 06:52:27

标签: java android

对于以下代码,正如您所见,new Intent中有一个bindService()new Intent中有startService()bindService(new Intent(this, MusicPlayerService.class), mPlaybackConnection, Context.BIND_AUTO_CREATE); startService(new Intent(this, MusicPlayerService.class)); 。我只是想知道最后是否会有两个Intent?或者两个意图仍然可以吗?

{{1}}

2 个答案:

答案 0 :(得分:4)

此代码相当于:

Intent intent = new Intent(this, MusicPlayerService.class);
bindService(intent, mPlaybackConnection, Context.BIND_AUTO_CREATE);
startService(intent);

在您提供的代码中,每次都会创建一个相同的Intent对象。

代码在某种意义上是相同的,因为它们都做同样的事情。但是,在整个过程中使用一个Intent会非常​​快一些,因为对象只创建一次。除此之外,两者都是正确的,并且都做同样的事情。

答案 1 :(得分:1)

我不认为这段代码,

bindService(new Intent(this, MusicPlayerService.class),
        mPlaybackConnection, Context.BIND_AUTO_CREATE);
startService(new Intent(this, MusicPlayerService.class));

相当于,

    Intent intent = new Intent(this, MusicPlayerService.class);
bindService(intent, mPlaybackConnection, Context.BIND_AUTO_CREATE);
startService(intent);

在第一个中,创建了两个不同的意图。但是在第二个中,只创建了一个intent,所以最好使用第二个代码。