我应该绑定服务还是多次调用startService?

时间:2019-07-01 01:32:19

标签: java android service android-service-binding

我通过意图在活动和服务之间发送数据(我多次调用startForegroundService,因为再次调用onStartCommand并使用getIntent来获取数据)。

示例:

Intent intent = new Intent(getActivity(), MediaPlayerService.class);
intent.putParcelableArrayListExtra("songList", Main.musicList);
intent.putExtra("songIndex", position);
intent.setAction(Constants.ACTIONS.ACTION_PLAY);
ContextCompat.startForegroundService(getActivity(), intent);

我在某处阅读,最好通过绑定与我的服务进行通信。

但是我通过这种方法实现了同样的目的,所以哪一种更可取?

1 个答案:

答案 0 :(得分:0)

从文档中:

  

开始

     

当应用程序组件(例如   活动)通过调用startService()启动它。一旦启动,一项服务   可以无限期地在后台运行,即使   开始它被摧毁。通常,启动的服务执行一次   操作,并且不会将结果返回给调用方。例如,它   可能会通过网络下载或上传文件。当手术   完成后,服务应自行停止。

     

绑定

     

当应用程序组件通过以下方式绑定到服务时,该服务就被“绑定”了   调用bindService()。绑定服务提供客户端服务器   允许组件与服务交互的接口,发送   请求,获取结果,甚至跨流程   进程间通信(IPC)。绑定服务仅运行至   另一个应用程序组件已绑定到它。多个组件可以   一次绑定到服务,但是当所有绑定解除绑定后,该服务   被摧毁。

您可以阅读以下有关@的更多信息:Android ServicesBound Services