2015-06-24 123 views
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方法中恢复它。 有没有人有一个想法,我可以解决这个问题?

回答

1

您应该使用服务在未打开应用程序的情况下使用媒体播放器播放音乐。检查本教程:http://www.helloandroid.com/tutorials/musicdroid-audio-player-part-ii

也许正在发生的事情是,当你重新打开之前的活动被关闭的应用程序并执行onCreate方法,

+0

那么,如何保存音乐播放状态,当应用程序恢复它重新启动? – kotAPI

+0

这就是为什么你应该使用服务,你不应该把音乐播放器放在一个活动! –

相关问题