アプリケーションとサービス間の通信に、インテントでデータを送信するのではなく、バインドされたサービスを使用する理由:
mServiceIntent = new Intent(getActivity(), RSSPullService.class);
mServiceIntent.setData(Uri.parse(dataUrl));
「サービスが既に実行されている場合、新しいインテントを配信するために onStartCommand() で再度呼び出されますが、2 番目のコピーは作成されません」と読みました。これは、サービスの進行状況に影響を与える目的でメッセージを送信できることを意味します。これは、Google RandomMusicPlayer の例で行われていることです。
public void onClick(View target) {
// Send the correct intent to the MusicService, according to the
// button that was clicked
if (target == mPlayButton)
startService(new Intent(MusicService.ACTION_PLAY));
else if (target == mPauseButton)
startService(new Intent(MusicService.ACTION_PAUSE));
else if (target == mSkipButton)
startService(new Intent(MusicService.ACTION_SKIP));
else if (target == mRewindButton)
startService(new Intent(MusicService.ACTION_REWIND));
else if (target == mStopButton)
startService(new Intent(MusicService.ACTION_STOP));
else if (target == mEjectButton) {
showUrlDialog();
}