我的应用程序由一项活动组成。当我按下时没有任何反应,这是为什么?我认为它会杀死应用程序。如果我按回家,应用程序会根据需要在后台运行。它只是后退按钮什么也不做。我能做些什么来影响这一点?
我已阅读文档:
public void onBackPressed ()
Run Code Online (Sandbox Code Playgroud)
当活动检测到用户按下后退键时调用。默认实现只是完成当前活动,但您可以覆盖它以执行您想要的任何操作。
我没有覆盖这一点。
这是已经提到的内容,覆盖键:
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);
};
Run Code Online (Sandbox Code Playgroud)
另一个片段,来自 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;
}
Run Code Online (Sandbox Code Playgroud)
没有你的实际代码是diffucult说,但我会采取一个大胆的猜测,说你是什么地方Activity你已经覆盖onKeyDown或onKeyUp与KeyEvent.KEYCODE_BACK被处理那里。我在我自己的应用程序中经历过这种行为,如果onKeyDown处理返回键并返回true,onBackPressed()甚至永远不会被调用。
| 归档时间: |
|
| 查看次数: |
744 次 |
| 最近记录: |