finish() 当您的活动完成并应该关闭时调用它。 ActivityResult 会通过 onActivityResult() 传播回启动你的人。
finishActivity(int requestCode) 用于完成您之前使用 startActivityForResult(Intent, int); 开始的另一个活动;
编辑
就像如果你简单地写finish();那么它就会完成你当前的活动,但是当你使用finishActivity(1001)然后1001是你从startActivityForResult(intent, 1001);传递的请求代码所以它会完成您来自的那个活动
示例。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (keyCode == KeyEvent.KEYCODE_BACK) {
finish();
finishActivity(107);
Intent intent = new Intent(this, Menu.class);
startActivity(inten);
return true;
}
return false;
}
所以上面的例子将完成你当前的活动,因为你写了finish();,也完成了你以前的活动,因为我们写了finishActivity(107);,我已经告诉你107是你从其他活动传递的代码.
假设您有 2 个活动(活动 A 和活动 B),主要活动 A 是开始活动。 Activity B 将在 Activity B 之上运行,并且是一个模糊视图。当我重定向到活动 B 时,你还没有完成活动 A。你正在像这样开始活动 B
startActivityForResult(intent, 107);
所以在活动 B 中你有
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (keyCode == KeyEvent.KEYCODE_BACK) {
finish();
finishActivity(107);
Intent intent = new Intent(this, Menu.class);
startActivity(inten);
return true;
}
return false;
}
这将完成您的活动 A 和 B。
希望这简单明了。