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);
}
}
}
主要有两个活动 - Sub2。 当您按下Main中的按钮时,您可以转到Sub2。 此代码位于Sub2中。我想使用底部的后退按钮使MainActivity放在堆栈顶部而不会杀死Sub2。
当我在手机上运行它时,它可以正常工作, 但经过几次回到Sub2并再次前往Sub2之后 后退按钮停止工作。
我不知道是什么让后退按钮冻结..任何想法?
ps)我尝试在方法中使用处理程序并覆盖onBackButtonPressed()而不是使用onKeyDown .. 但没有任何区别......
答案 0 :(得分:0)
不确定为什么你的按钮冻结了。看看你在主要活动中做了什么会很有帮助。这是一个适合我并且不冻结的例子:
您可以将其放在主要活动中:
@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);
}
});
}
这是在子活动中:
@Override
public void onBackPressed() {
//super.onBackPressed();
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);
}