0

对于下面的代码,如您所见,一个new Intent在 中bindService(),另一个new Intent出现在startService(). 我只是想知道最终是否会有两个意图?还是两个Intent都还可以?

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

2 回答 2

4

这段代码相当于:

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

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

代码在它们都做同样的事情的意义上是等价的。但是,始终使用一个 Intent 会非常非常快,因为该对象只创建一次。除此之外,两者都是正确的,并且都做同样的事情。

于 2012-09-22T07:02:30.127 回答
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);

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

于 2012-09-22T07:37:01.403 回答