我的代码从列表视图中播放一首歌,一切都很完美,但是,如果我特别旋转它,媒体播放器就会停止,我该如何保持播放?和如果我创建了另一个按钮来暂停,或者类似的东西,我应该使用相同的答案吗?我在按钮中的代码:
testme.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
if(nombre.matches("Kaminomi")) { //ignore this
try {
mp.setDataSource(nombreSong);
mp.prepare();
} catch (IOException e) {
e.printStackTrace();
}
if (validar == false) {
validar = true;
mp.start();
Toast.makeText(getApplicationContext(), "Reproduciendo ahora: n" + nombreSong, Toast.LENGTH_LONG).show();
testme.setText("Stop :D");
testme.setCompoundDrawablesWithIntrinsicBounds(R.drawable.nisekoi1,0,0,0);
} else {
validar = false;
Toast.makeText(getApplicationContext(), "Deteniendo: n" + nombreSong, Toast.LENGTH_LONG).show();
mp.stop();
testme.setText("Play :D");
}
}else{
Toast.makeText(getApplicationContext(), "Algo mas creo", Toast.LENGTH_LONG).show(); //ignore this too
}
}
将其放入清单xml文件:
<activity android:name="MainActivity"
android:configChanges="keyboardHidden|orientation">
即将CCD_ 1添加到活动xml元素。
实际情况是,当你的屏幕方向发生变化时,配置就会发生变化,这会导致Android破坏并重新创建你的活动。
我答案中的上述代码将防止在方向更改或键盘更改时发生配置更改。
然而,这只是一个变通办法。配置更改随时可能发生(例如,将手机放在扩展坞中),因此仅禁用方向更改和键盘更改的配置更改是不够的。
为了在配置更改期间正确地维护对象的状态,碎片是一种很好的方法。