2011-07-11 136 views
1

我現在有一個listview,當你單擊一個項目它把你帶到一個新的窗口,並開始播放有關該position的歌曲。問題是,當我按後退按鈕返回到listview和我按相同的項目,音樂開始打一遍,在什麼正在播放。有沒有辦法解決這個問題,所以當你點擊同一個項目並且該歌曲正在播放時,它不會重放歌曲?由於Android的ListView和媒體播放器

回答

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頁面應該給你如何處理服務很好的概述。

+0

因此,我閱讀了文章,並在YouTube上觀看了關於Android服務的視頻,但我仍然有一個問題:我是否創建活動並在活動內部啓動服務,或者以其他方式? – Splitusa

+0

所以要回答你的問題,你可以創建活動,並在活動onCreate方法中,你可以啓動服務。 –