1

finish() でいくつかの状態を確認できますか

条件が成功の場合、前に戻る

そうでなければ、フィニッシュを止めて、現在の活動を続けますか?

4

4 に答える 4

8

アクティビティをオーバーライドすることで、「バック」プレスイベントをキャッチできonBackPressed()ます。アクティビティを終了したくない状態がある場合はsuper.onBackPressed()、そのメソッドを呼び出さないでください。

super.onBackPressed()ただし、その条件が満たされない場合は、必ず電話してください。

于 2012-04-15T06:53:30.043 に答える
5

別のオプションは、アクティビティのオーバーライドですfinish()

@Override
public void finish() {
    if( bLetsFinish ){
        super.finish(); //This will finish the activity and take you back
    }else{
        //Do whatever it is that you want to do
        return;
    }
}

ただし、この関数は、Activity が finish() するたびに呼び出されることに注意してください。たとえば、携帯電話を回転させて、Activity を再作成します。この場合、古いアクティビティは finish() にならず、アクティビティの破壊の動作がどのようになるかわかりません。

于 2012-04-15T09:01:23.153 に答える
2
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        if(success){
            finish();
       }
      return true;
   }
   return super.onKeyDown(keyCode, event);
}

上記の方法または以下の方法を使用してタスクを実行できます

public void onBackPressed(){
if(success){
finish();
}
}
于 2012-04-15T09:07:56.523 に答える
0
@Override
public void onBackPressed() {
    if (success)
        super.onBackPressed();
    else // Do what you want to do
}
于 2017-01-05T07:55:50.770 に答える