对于下面的代码,如您所见,一个new Intent
在bindService()
,另一个new Intent
出现在startService()
中。我只是想知道最终是否会有两个意图?还是两个意图还可以?
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
对象。
代码是等效的,因为它们都做同样的事情。但是,在整个过程中使用一个 Intent 会非常非常快,因为对象只创建一次。除此之外,两者都是正确的,并且都做同样的事情。
我不认为这段代码,
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);
在第一个中,创建了两个不同的意图。但是在第二个中,只创建了一个意图,因此最好使用第二个代码。