我目前有listview
,当您点击某个项目时,它会转到新窗口并开始播放与该position
相关联的歌曲。问题是当我按下后退按钮返回listview
并按下相同的项目时,音乐会再次开始播放,而不是已播放的内容。有没有解决这个问题,所以当你点击同一个项目并播放该歌曲时,它不会重播这首歌?感谢
答案 0 :(得分:0)
您需要使用service让音乐在后台运行。
答案 1 :(得分:0)
查看有关创建播放音乐服务的this article。看起来像你想要做的。
您可以做的另一件事是添加一个函数,当调用onPause或onStop方法时激活音乐。然后,非活动的音乐播放活动将在自己的好时间被Android操作系统破坏,你不必担心播放多个音乐文件。此方法的缺点是,只有在新窗口可见时才能播放音乐。如果更改窗口,它将暂停,因为将调用onPause或onStop方法。如果你想让音乐在后台播放,我认为你需要使用服务技术。
要启动该服务,您可以使用intent绑定它或使用startService方法。
例如,在上面链接的文章中,服务在此处启动:
public class MusicDroid extends ListActivity {
public static final String MEDIA_PATH = new String("/sdcard/");
private List<String> songs = new ArrayList<String>();
private MDSInterface mpInterface;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.songlist);
this.bindService(new Intent(MusicDroid.this,MDService.class),
null, mConnection, Context.BIND_AUTO_CREATE); // <- starting service by creating a binding.
}
}
official Android Services api页面应该让您对如何处理服务有一个很好的概述。