public boolean onKeyDown(int keyCode, KeyEvent event){
if (isSub2&&keyCode == KeyEvent.KEYCODE_BACK) {
Intent intent = new Intent(ctxx, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);
isReturning = true;
return false;
}
else {
return super.onKeyDown(keyCode, event);
}
}
}
有两个 Activity Main--Sub2。 当您在 Main 中按下一个按钮时,您可以转到 Sub2。 此代码在 Sub2 中。我想使用底部的后退按钮使 MainActivity 放在堆栈顶部而不杀死 Sub2。
当我在手机上运行它时,一开始一切正常, 但在多次返回 Sub2 并再次进入 Sub2 之后 后退按钮停止工作。
我不知道是什么让后退按钮卡住......有什么想法吗?
ps) 我尝试在方法内部使用处理程序并覆盖 onBackButtonPressed() 而不是使用 onKeyDown.. 但完全没有区别..
最佳答案
不确定为什么您的按钮会卡住。查看您在主要 Activity 中正在做什么会很有帮助。这是一个对我有用且不会卡住的示例:
你可以把它放在主 Activity 中:
@Override
protected void onStart() {
super.onStart();
Button button = (Button) findViewById(R.id.button1);
button.setOnClickListener( new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, SubActivity.class);
//****** Uncomment the following line if you want to re-use the subactivity instead of launching a new one
//intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);
}
});
}
这在子 Activity 中:
@Override
public void onBackPressed() {
//super.onBackPressed();
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);
}
关于java - 使用 onkeydown 方法或覆盖 onbackbuttonpressed 时,Android 后退按钮会卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24496342/