Activity_main.xml
只需添加一个TextView
MainActivity.java
package com.example.musicplay;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.view.KeyEvent;
import android.view.Menu;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView textview;
private Music music;
private boolean musicState=false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textview=(TextView) this.findViewById(R.id.musicState);
music=new Music(this);
//第二次打开时仍保持第一次关闭前的状态
SharedPreferences sharedPreferences=getSharedPreferences("PlayMusic",MODE_PRIVATE);
musicState=sharedPreferences.getBoolean("musicState", false);
if(musicState){
textview.setText("当前音乐状态:开");
music.playMusic();
}else{
textview.setText("当前音乐状态:关");
}
}
//按键弹起事件
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_DPAD_UP://点击箭头上的按钮
textview.setText("当前音乐状态:开");
musicState=true;
music.playMusic();
break;
case KeyEvent.KEYCODE_DPAD_DOWN://点击下
textview.setText("当前音乐状态:关");
musicState=false;
music.freeMusic();
break;
default:
break;
}
return super.onKeyUp(keyCode, event);
}
//按键按下事件
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
//退出应用程序时保存数据
if(keyCode==KeyEvent.KEYCODE_BACK){//点击返回
//第一个参数是保存的文件名,以xml形式保存
/*点击右上角DDOM,选择File Explorer,找到/data/data目录下对应的shared_prefs文件夹,
* 找到PlayMusic.xml文件*/
SharedPreferences preferences=getSharedPreferences("PlayMusic",Context.MODE_PRIVATE );
//获得编辑对象
Editor editor=preferences.edit();
//添加值
editor.putBoolean("musicState",musicState);//以键值对的形式存储
//保存
editor.commit();
if(musicState){
music.freeMusic();
}
finish();
}
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
Music.java
package com.example.musicplay;
import java.io.IOException;
import android.content.Context;
import android.media.MediaPlayer;
public class Music {
private MediaPlayer musicPlay=null;
private Context mContext=null;
public Music(Context context){
mContext=context;
}
//播放音乐
public void playMusic(){
//查找音乐源
musicPlay=MediaPlayer.create(mContext, R.raw.start);
//使音乐循环播放
musicPlay.setLooping(true);
try{
musicPlay.prepare();
}catch(IllegalStateException ex){
ex.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
musicPlay.start();
}
//关闭并且释放资源
public void freeMusic(){
if(musicPlay!=null){
musicPlay.stop();
musicPlay.release();
}
}
}