我正在制作一个MP3播放器,我有ArrayList
个需要更改和添加的歌曲,即使在播放器未处于活动状态或后台时也是如此。
我是否将这些ArrayList
存储在Service
中,以便在需要时更新它们,或者将它们存储在Activity
中,以便用户界面可以更轻松地访问它们?我已经看过教程两种方式,所以我很困惑如何继续。
我认为如果Activity
不可见或有效,则Service
无法访问它们。因此,所有mp3列表都应存储在Service
中,并将Activity
绑定到Service
,以便UI可以更新?
当应用在后台时,Service
可以访问我的其他课程,对吗?
答案 0 :(得分:1)
通常,您会执行服务中的所有后台操作。这意味着执行此操作或与此操作相关的所有数据/信息也由服务管理。 您的活动应仅用作查看或控制服务的可能性。
例如,在您的情况下,PlaylistActivity
会向服务询问当前播放列表,并只显示它。 (仅限服务视图)
PlayerActivity
将播放当前歌曲,当前进度(例如以秒为单位)和播放状态(开始/停止)。此信息将显示在典型的播放器界面中。但它也会提供控制来启动或停止歌曲,跳转到下一首或上一首歌曲或者例如快进/快退。如果用户单击这些控件,则只会将其转发给该服务。 (服务的视图和控制)