为什么有两个"new Intent"?他们会做出两种不同的意图吗?



对于下面的代码,如您所见,一个new IntentbindService(),另一个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);

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

相关内容

最新更新