5

私のアプリは 1 つのアクティビティで構成されています。押し戻しても何も起こらないのはなぜですか? 私はそれがアプリを殺すと思った。ホームを押すと、アプリは必要に応じてバックグラウンドで続行します。何もしないのは戻るボタンだけです。これに影響を与えるために何ができたでしょうか?

ドキュメントを読みました:

public void onBackPressed ()

ユーザーが戻るキーを押したことをアクティビティが検出したときに呼び出されます。デフォルトの実装は単に現在のアクティビティを終了しますが、これをオーバーライドして必要なことを行うことができます。

私はこれをオーバーライドしていません。

キーをオーバーライドして、言及されているものを次に示します。

public boolean dispatchKeyEvent(KeyEvent event) {
    if (event == null || event.getAction() == KeyEvent.ACTION_UP) {

        return false;
    }
   if(event.getKeyCode() == KeyEvent.KEYCODE_DEL){

    mEntry.setOnFocusChangeListener(new OnFocusChangeListener(){
        @Override
        public void onFocusChange(View v,boolean hasFocus){
              /* When focus is lost check that the text field
               * has valid values.
               */
              if (!hasFocus && !mEntry.getText().toString().trim().equals("")) {

                    mSession.appendToEmulator(cmdLeft, 0, cmdLeft.length);
                    mSession.appendToEmulator(cmdErase, 0, cmdErase.length);

                    Log.d(TAG, "in inner delete");
              }
              else {mEntry.setText(" ");
              }
        }          
    });


    Log.d(TAG, "in delete in delete in delete in delete");
    try {
        sendOverSerial("\b".getBytes("UTF-8"));
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }
}

    return super.dispatchKeyEvent(event);
};

onCreate からの別のスニペット:

mEntry = (EditText) findViewById(R.id.term_entry);

        mEntry.setOnEditorActionListener(new TextView.OnEditorActionListener() {

            @Override
            public boolean onEditorAction(TextView v, int actionId,
                    KeyEvent event) {

                /* Ignore enter-key-up events. */
                if (event != null && event.getAction() == KeyEvent.ACTION_UP) {

                    return false;
                }
4

1 に答える 1

5

実際のコードがなければ、言うのは難しいですが、大胆な推測をして、あなたのどこかでActivityオーバーライドしたonKeyDownonKeyUpKeyEvent.KEYCODE_BACKそこで処理されたと言いたいと思います。自分のアプリでonKeyDown、バックキーを処理して を返すtrueと、onBackPressed()呼び出されることさえないという動作を経験しました。

于 2013-03-07T13:11:26.857 に答える