2014-06-15 43 views
0

我想实现的是当我从主要活动中转到第二个活动时停止音乐(此作品和音乐停止)但是当我按下后面按钮返回到主要活动,音乐似乎不会再次开始。我怎样才能让它重新开始,或者如果可能的话,在进行第二次活动时暂停音乐,并在返回主要活动时继续。如何在回到主要活动时再次播放音乐

这里是我的代码,其中去到下一个活动的时候,但要回主活动时不播放音乐停止:

public class MainActivity extends Activity implements OnClickListener{ 

public static MediaPlayer player; 



@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    player = new MediaPlayer(); 
    player = MediaPlayer.create(this, R.raw.music_a); 
    player.setAudioStreamType(AudioManager.STREAM_MUSIC); 
    player.setLooping(true); 
    player.start(); 

    Button btn = (Button) findViewById(R.id.button1); 
    btn.setOnClickListener(new View.OnClickListener() 
    { 
    public void onClick(View v) { 
     Intent intent = new Intent(MainActivity.this, SecondActivity.class); 
     startActivity(intent); 
     player.stop(); 


    } 
    }); 

} 

    protected void onPause() { 
     if (this.isFinishing()){ 
      player.stop(); 
      Toast.makeText(MainActivity.this, "BYE", Toast.LENGTH_LONG).show(); 
     } 
     Context context = getApplicationContext(); 
     ActivityManager am = (ActivityManager) context.getSystemService (Context.ACTIVITY_SERVICE); 
     List<RunningTaskInfo> taskInfo = am.getRunningTasks(1); 
     if (!taskInfo.isEmpty()) { 
      ComponentName topActivity = taskInfo.get(0).topActivity; 
      if (!topActivity.getPackageName().equals(context.getPackageName())) { 
      player.stop(); 
      } 
      else { 
      } 
     } 
     super.onPause(); 
     } 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 

    } 


} 

这里是我的第二个活动(我需要把这里的东西也?)

public class SecondActivity extends Activity{ 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.secondscreen); 
} 

} 

感谢

回答

3

你要叫onResume你的第一个活动,继续播放音乐

@Override 
protected void onPause() { 
     super.onPause(); 
    // stop the music 
} 

@Override 
protected void onResume() { 
     super.onResume(); 

    // play the music here 
} 
+0

您好感谢,这是有道理的,但我在哪里在我的主要活动中调用onResume? – Allrounder

+0

看到我编辑的答案 –

+0

这似乎并没有工作:-( – Allrounder

0

只是删除你的代码从OnCreate中玩,并开始播放歌曲的onResume

try { 
     if (player != null) { 
      player.start(); 
     } else { 
      player = new MediaPlayer(); 
      player = MediaPlayer.create(this, R.raw.meintenu); 
      player.setAudioStreamType(AudioManager.STREAM_MUSIC); 
      player.setLooping(true); 
      player.start(); 

     } 
    } catch (Exception e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
edit: 

写这在您的按钮,点击

Intent intent = new Intent(MainActivity.this,SecondActivity.class); 

    startActivity(intent); 

    player.stop(); 

    player.release(); 

    player=null; 
+0

已经尝试过这个,但是回到主要活动时似乎并没有启动音乐。 – Allrounder

+0

ru在log cat中出现任何错误..试试调试,看看它是否实际上去玩.. – Meenal

+0

看到我编辑的答案..我已经尝试过..它对我工作很好:) – Meenal