如何在android中使用移动后退按钮完成活动?
在我的示例应用程序中,我有两个名为如何在android中使用移动后退按钮完成活动?,android,Android,在我的示例应用程序中,我有两个名为FirstActivity和SecondActivity的活动。在SecondActivity中,我想通过使用移动后退按钮通过intent传递一些数据,在这里我也想完成SecondActivity,但当我在SecondActivity中按下后退按钮时,它会让我返回到我的FirstActivity,但它不会完成SecondActivity。请帮助我如何完成第二个活动 public boolean onKeyDown(int keyCode, KeyEvent ev
FirstActivity
和SecondActivity
的活动。在SecondActivity
中,我想通过使用移动后退按钮通过intent传递一些数据,在这里我也想完成SecondActivity
,但当我在SecondActivity
中按下后退按钮时,它会让我返回到我的FirstActivity
,但它不会完成SecondActivity
。请帮助我如何完成第二个活动
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if ((keyCode == KeyEvent.KEYCODE_BACK))
{
Intent intent = new Intent(SecondActivity.this,FirstActivity.class);
//intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("Data1", data1);
intent.putExtra("Data2", data2);
startActivity(intent);
finish();
}
return true;
}
在第一个活动中使用
startActivityForResult
,在完成第二个活动之前,使用setResult
方法。您应该查看文档,了解哪些方法是正确的
@Override
public void onBackPressed() {
super.onBackPressed();
this.finish();
}
但是,在上面的示例中,SecondActivity.this.finish()
应该可以工作。也许可以工作:
// Back Button Press
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
Intent intent = new Intent(SecondActivity.this,FirstActivity.class);
//intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("Data1", data1);
intent.putExtra("Data2", data2);
startActivity(intent);
SecondActivity.this.finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
我认为这是一种完成活动;而不是完成();SecondActivity.this.finish();仅限其
finish()
。所以OP就在这里。你们是如何发起第二个活动的?我的意思是,您正在从第一个活动本身启动第二个活动?为什么不覆盖onBackPressed并发送广播意图,这不是最干净的解决方案,但我认为它可以避免您的问题