我按下后退按钮时尝试下面的代码来调用另一个活动:
@Override
public boolean onKeyUp(int keyCode, KeyEvent msg) {
switch(keyCode) {
case(KeyEvent.KEYCODE_BACK):
Intent intent = new Intent(AActivity.this, BActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Window w = NASGroup.group.getLocalActivityManager().startActivity("BActivity", intent);
View view = w.getDecorView();
MyGroup.group.setContentView(view);
return true;
}
return false;
}
但是当我按下后退按钮时,它就会离开应用程序。
我看到了logcat,它没有运行函数onKeyUp
并且不输出任何消息。
onKeyUp
中的代码相同,我尝试将下面的代码编写为布局中的按钮,然后才能正常工作。
cancel.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(AActivity.this, BActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Window w = NASGroup.group.getLocalActivityManager().startActivity("BActivity", intent);
View view = w.getDecorView();
MyGroup.group.setContentView(view);
}
});
我该如何修改?
答案 0 :(得分:15)
要处理背压,您必须覆盖Onbackpress方法。
@Override
public void onBackPressed() {
finish();
Intent intent = new Intent(Myactivity.this, other.class);
startActivity(intent);
}
答案 1 :(得分:2)
尝试覆盖活动的onBackPressed()方法
来自文档:onBackPressed
答案 2 :(得分:2)
试试这个......
@Override
public void onBackPressed() {
Intent BackpressedIntent = new Intent();
BackpressedIntent .setClass(getApplicationContext(),TargetActivity.class);
BackpressedIntent .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(BackpressedIntent );
finish();
}
答案 3 :(得分:2)
对于后退按钮,您必须覆盖活动中的OnBackPressed()
@Override
public void onBackPressed() {
Intent intent=new Intent(currentclass.this,nextActivity.class);
startActivity(intent);
finish();
}
如果你没有完成上一个活动,那么就不需要使用intent和startActivity,只需调用finish();在onBackPressed中,它将完成当前活动,之前的活动将开始。
答案 4 :(得分:1)
如果您在活动中,则可以使用 onBackPressed 这是一种内置方法来处理按键按下。