3 つのフラグメントを持つアクティビティに onBackPressed を実装しようとしています。私の問題は、しばらくしてから「もう一度押す」方法を実装したことですが、戻るボタンを2回クリックすると、終了せずに前のフラグメントに戻ります。これは、そのフラグメントが呼び出されたときに発生します (つまり、ゲームを開いてすぐに終了すると、魔法のように機能します)。MainActivity の onBackPressed メソッドは次のようになります。
@Override
public void onBackPressed() {
if(getSupportFragmentManager().getBackStackEntryCount()!=0) {
getSupportFragmentManager().popBackStack();
}
this.findViewById(R.id.linearLayout1).setVisibility(View.VISIBLE);
if(mBackPressed + TIME_INTERVAL > System.currentTimeMillis() && getSupportFragmentManager().getBackStackEntryCount()==0){
super.onBackPressed();
System.exit(0);
this.finish();
}
else { Toast.makeText(getBaseContext(), "Press back once more to exit", Toast.LENGTH_SHORT).show(); }
mBackPressed = System.currentTimeMillis();
}
私は基本的に、ユーザーが mainActivity レイアウトにいるかどうかを確認して、popBackStack を使用して回避できるようにしたいと考えています。これで十分でない場合は、より多くの情報を提供できます。
ありがとう、ベクタシュ