0
我正在處理一個應用程序,在其中填充了顯示圖標的gridview。每次點擊圖標時我都需要播放音樂。Android:MediaPlayer-如何避免音樂在重新啓動應用程序時重播
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main)
final MediaPlayer fire = MediaPlayer.create(this,R.drawable.fire);
final MediaPlayer night = MediaPlayer.create(this,R.drawable.night);
GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ImageAdapter(this));
gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
ImageView imageView = (ImageView) v;
////
if(isPlaying) {
switch (position)
{
case 0:
fire.setLooping(true);
fire.start();
fire.setVolume(0.34f, 0.34f);
imageView.setImageResource(R.drawable.fire2);
break;
case 1:
night.setLooping(true);
night.start();
night.setVolume(0.34f, 0.34f);
imageView.setImageResource(R.drawable.night2);
break;
}
}
}
});
}
當我按下後退按鈕並最小化應用程序時,音樂繼續播放(應該會發生)。但是當我再次打開應用程序時,它會重新啓動,所有圖標都會恢復到原始狀態,應用程序的前一個實例的音樂會繼續播放。當我再次點擊播放音樂圖標時,會出現一層新的音樂,使其非常煩人,並且重新啓動時應用程序完全無用。
我知道我應該保存狀態並在onRestart方法中恢復它。 有沒有人有一個想法,我可以解決這個問題?
那麼,如何保存音樂播放狀態,當應用程序恢復它重新啓動? – kotAPI
這就是爲什麼你應該使用服務,你不應該把音樂播放器放在一個活動! –