インスタンスを保存した後、いくつかの操作を行うために「int audio」を check() メソッドに共有する必要があります。「情報」オプションがあります。クリックすると情報ダイアログが表示され、音声を聞きたいです (「キャンセル」をクリックすると停止します)。しかし、エミュレーターを回転させると、別のオーディオ スターが表示されます。
int audio;
static int Info;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
int Info = savedInstanceState.getInt("dialoginfo");
int audio = savedInstanceState.getInt("audio");
}
if(Info != 0)
{
Info();
}
private void Info(){
Info = 1;
sobCheck();
LayoutInflater li = LayoutInflater.from(this);
View view = li.inflate(R.layout.info, null);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setView(view).create();
TextView text=(TextView) findViewById(R.id.infoView1);
builder.setCancelable(false);
builder.setPositiveButton("Chiudi", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Info = 0;
mp.stop();
mp.reset();
mp.release();
mp = null;
audio = 0;
dialog.cancel();
}
});
builder.show();
}
private void sobCheck(){
if (audio == 0){
mp = MediaPlayer.create(this, R.raw.sob);
mp.start();
audio = 1;
}
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("audio", a);
画面を回転させた後、「オーディオ」は常に「0」です