Android后退键什么都不做?

时间:2013-03-07 12:47:06

标签: java android

我的应用包含一项活动。当我按下什么没有发生时,为什么会这样?我以为它会杀了应用程序。如果我按回家,应用程序将根据需要在后台进行控制。它只是后退按钮,什么都不做。我可以做些什么来影响这个?

我已阅读文档:

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;
                }

1 个答案:

答案 0 :(得分:4)

如果没有您的实际代码,我很难说,但我会大胆猜测,并在Activity中的某个位置覆盖onKeyDownonKeyUp和{{1}在那里处理。我在自己的应用中遇到过这样的行为:如果KeyEvent.KEYCODE_BACK处理后退键并返回onKeyDown,则true将永远不会被调用。