Androidにデフォルトのバックキー(デバイス上)リスナーはありますか?

StackOverflow https://stackoverflow.com/questions/2592037

質問

AとBの2つのアクティビティAとBがあります。Bのボタンをクリックすると、Bのボタンをクリックすると、AがAに戻ります。適切に機能します。ただし、現在のアクティビティがBの場合は、その間にデバイスのデフォルトのバックボタンをクリックします。アクティビティAを表示するために右から左への移行を示しています。

デバイス上のデフォルトのバックキーを聞くにはどうすればよいですか?

編集:

Log.v(TAG, "back pressed");
finish();
overridePendingTransition(R.anim.slide_top_to_bottom, R.anim.hold);
役に立ちましたか?

解決

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
        // do something on back.
        return true;
    }

    return super.onKeyDown(keyCode, event);
}

次のリンクは、Android開発者自身によって書かれたバックキーイベントの処理方法に関する詳細な説明です。

バックキーを使用します

他のヒント

Android 2.0以降の場合、アクティビティクラスには特定の方法があります。

@Override  
public void onBackPressed() {
    super.onBackPressed();   
    // Do extra stuff here
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode == KeyEvent.KEYCODE_BACK){
        //Do stuff
    }

    return super.onKeyDown(keyCode, event);
}

バックキーの詳細については、こちらをご覧ください。 http://android-developers.blogspot.com/2009/12/back-and-other-hard-keys-three-stories.html

このコードは、メディアプレーヤーとのアクティビティで使用しています。ユーザーが戻るボタンを押したときに再生を停止する必要がありましたが、それでも以前のアクティビティに戻ることができました。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
        // do something on back.
        try{
            mp.stop(); //this line stops the player
            return super.onKeyDown(keyCode, event);//this line does the rest 
        }
        catch(IllegalStateException e){
            e.printStackTrace();
        }
        return true;
    }

    return super.onKeyDown(keyCode, event); //handles other keys
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top