我正在制作一个MP3播放器,我有ArrayList
s的歌曲需要修改和添加,即使播放器不活动或在后台。
我是否将这些ArrayList
存储在Service
中,以便在需要时更新它们,或者我是否将它们存储在Activity
中,以便UI可以更容易地访问它们?我看过两种方法的教程,所以我对如何继续感到困惑。
我认为如果Activity
不可见或不活动,Service
无法访问它们。那么,所有的mp3列表都应该存储在Service
中,并将Activity
绑定到Service
,以便UI可以更新?
一个Service
可以访问我的其他类,而应用程序是在后台,对吗?
一般来说,你在服务中完成所有的后台操作。这意味着执行此操作所需的或与此操作相关的所有数据/信息也由服务管理。你的活动应该只作为你的服务的视图或控制的可能性。
在您的例子中,PlaylistActivity
将向服务询问当前播放列表,并将显示它。(仅为服务的视图)。PlayerActivity
将获得当前歌曲播放,当前进度(例如以秒为单位)和播放状态(开始/停止)。这些信息将显示在一个典型的玩家界面中。但它也提供了开始或停止歌曲的控制,跳转到下一首或上一首歌曲,例如快进/后退。如果用户单击这些控件,它将被简单地转发到服务。(服务的视图和控件)