維持するための多くの解決策を見ましたAlertDialog
が、それらのほとんどはおそらく画面が暗くなると機能しません。しかし、私が作ったこれはうまく動作します。それを行うための他の軽量な方法はありますFragment
かACL
?
public class Test extends Activity {
AlertDialog dialog;
boolean dialog_should_be_shown = false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Button btn = new Button(this);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
createDialog();
}
});
setContentView(btn);
if (savedInstanceState != null) {
dialog_should_be_shown = savedInstanceState.getBoolean("flag",
false);
}
}
private void createDialog() {
dialog = new AlertDialog.Builder(Test.this).setMessage("HEllo")
.setCancelable(true).create();
dialog.show();
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putBoolean("flag", dialog_should_be_shown);
}
@Override
protected void onResume() {
super.onResume();
if (dialog_should_be_shown) {
createDialog();
}
}
@Override
protected void onPause() {
super.onPause();
if (dialog != null && dialog.isShowing()) {
dialog_should_be_shown = true;
dialog.dismiss();
} else {
dialog_should_be_shown = false;
}
}
@Override
protected void onStop() {
super.onStop();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_test, menu);
return true;
}
}
Framgnet
更新:メモリに保持したくありません。