shared preferrence是用来保存应用程序设置数据的一种保存方式,是一种key-value 的数据结构:
代码:
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);
// 取得值,名字为"bmusic"如果不存在返回false,所以第一次运行的时候因为没有bumusic
// 所以是关的。
mbMusic = settings.getBoolean("bmusic", false);
if (mbMusic==true)
{
mTextView.setText("当前音乐状态:开");
//mbMusic = true;
mMIDIPlayer.PlayMusic();
}
else
{
mTextView.setText("当前音乐状态:关");
}
}
public boolean onKeyUp(int keyCode, KeyEvent event)
{
switch (keyCode)
{
case KeyEvent.KEYCODE_DPAD_UP:
//如果已经在播放,就不再开始新的音乐
if(mbMusic) {
}
else {
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);
// 取得编辑对象,必须通过editor编辑文件
SharedPreferences.Editor editor = uiState.edit();
// 添加值
editor.putBoolean("bmusic", mbMusic);
// 提交保存
editor.commit();
//如果还在播放,则释放音乐
if ( mbMusic )
{
mMIDIPlayer.FreeMusic();
}
this.finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
}