フラグメントを使用するアプリケーションがあります。アプリの起動時にこれを行います:
FragmentManager man = getFragmentManager();
FragmentTransaction trans = man.beginTransaction();
trans.replace(R.id.master_container, master);
trans.commit();
ご覧のとおり、ユーザーがフラグメントのない空のアクティビティに巻き込まれたくないため、バックスタックに追加しません。しかし、それはうまくいきません。画面の戻るボタンを押すとmaster
、フラグメントが閉じられ、黒いアクティビティが残るためです。今私はonBackPressed()
私を助けるためにメソッドをオーバーライドします:
@Override
public void onBackPressed() {
// 'master' is the Mainscreen Fragment
if (master.isVisible()) {
if (!second) {
Toast.makeText(getApplication(), "Press back again to close application", Toast.LENGTH_SHORT).show();
second = true;
} else {
second = false;
CreamyActivity.this.finish();
}
} else {
super.onBackPressed();
bar.show();
}
}
しかしCreamyActivity.this.finish();
、再びフラグメントを閉じて空のアクティビティにドロップするときはいつでも(まるでバックスタックをたどっていたかのように)(これはすべてアクティビティにあります!)
私はあなたが私を助けることができるかどうか疑問に思っていました. 通常、アプリは自動的に終了するべきではありませんが、ここで回避策を提供していただければ幸いです。それとも、バックスタックに何か問題がありますか? とにかく自動的に追加しますか?
よろしくお願いします<3