1.新建工程Activity01 2.设置main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:id="@+id/TextView01" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> </LinearLayout> 3.新建MIDIPlayer.java package aom.yarin.android.Examples_06_01; import java.io.IOException; import android.content.Context; import android.media.MediaPlayer; public class MIDIPlayer { public MediaPlayer playerMusic = null; private Context mContext = null; public MIDIPlayer(Context context) { mContext = context; } /* 播放音乐 */ public void PlayMusic() { /* 装载资源中的音乐 */ playerMusic = MediaPlayer.create(mContext, R.raw.start); /* 设置是否循环 */ playerMusic.setLooping(true); try { playerMusic.prepare(); } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } playerMusic.start(); } /* 停止并释放音乐 */ public void FreeMusic() { if (playerMusic != null) { playerMusic.stop(); playerMusic.release(); } } } 4.修改Activity01.java package aom.yarin.android.Examples_06_01; import android.app.Activity; import android.content.SharedPreferences; import android.os.Bundle; import android.view.KeyEvent; import android.widget.TextView; public class Activity01 extends Activity { private MIDIPlayer mMIDIPlayer = null; private boolean mbMusic = false; private TextView mTextView = null; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mTextView = (TextView) this.findViewById(R.id.TextView01); mMIDIPlayer = new MIDIPlayer(this); /* 装载数据 */ // 取得活动的preferences对象. SharedPreferences settings = getPreferences(Activity.MODE_PRIVATE); // 取得值. mbMusic = settings.getBoolean("bmusic", false); if (mbMusic) { mTextView.setText("当前音乐状态:开"); mbMusic = true; mMIDIPlayer.PlayMusic(); } else { mTextView.setText("当前音乐状态:关"); } } public boolean onKeyUp(int keyCode, KeyEvent event) { switch (keyCode) { case KeyEvent.KEYCODE_DPAD_UP: mTextView.setText("当前音乐状态:开"); mbMusic = true; mMIDIPlayer.PlayMusic(); break; case KeyEvent.KEYCODE_DPAD_DOWN: mTextView.setText("当前音乐状态:关"); mbMusic = false; mMIDIPlayer.FreeMusic(); break; } return true; } public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { /* 这里我们在推出应用程序时保存数据 */ // 取得活动的preferences对象. SharedPreferences uiState = getPreferences(0); // 取得编辑对象 SharedPreferences.Editor editor = uiState.edit(); // 添加值 editor.putBoolean("bmusic", mbMusic); // 提交保存 editor.commit(); if ( mbMusic ) { mMIDIPlayer.FreeMusic(); } this.finish(); return true; } return super.onKeyDown(keyCode, event); } } 5.添加资源/res/raw/start.mid