【发布时间】:2020-03-07 16:48:25
【问题描述】:
我正在尝试构建一个小型 MusicPlayer 以用于学习目的,但我对如何在后台进程和活动之间进行通信感到困惑。我还没有看过其他人的代码,但在我的(几乎是业余设计)中,活动和服务必须每秒相互更新,因为活动的控件应该反映在服务控件中(比如服务是否有 GUI android的通知栏)和音乐播放应该更新Activity的seekbar等。
实现服务的最佳方式是什么,以便它可以独立运行但与活动同步?
【问题讨论】:
我正在尝试构建一个小型 MusicPlayer 以用于学习目的,但我对如何在后台进程和活动之间进行通信感到困惑。我还没有看过其他人的代码,但在我的(几乎是业余设计)中,活动和服务必须每秒相互更新,因为活动的控件应该反映在服务控件中(比如服务是否有 GUI android的通知栏)和音乐播放应该更新Activity的seekbar等。
实现服务的最佳方式是什么,以便它可以独立运行但与活动同步?
【问题讨论】:
我按照以下说明进行操作: https://developer.android.com/guide/components/bound-services
绑定服务是服务类的实现,它允许其他应用程序绑定到它并与之交互。要为服务提供绑定,您必须实现 onBind() 回调方法。此方法返回一个 IBinder 对象,该对象定义了客户端可用于与服务交互的编程接口。
基本上你实现你的服务和你的活动,然后当活动恢复时,它可以绑定服务,以便它们可以通信。
在同一个页面中,您可以找到一些关于它是如何在 java 和 kotlin 中完成的代码。
【讨论】: