正如我已经了解的Finish() and FinishActivity()
。即
finish()
在您的活动完成后调用此选项并应关闭。
finishActivity()
用于完成您之前使用startActivityForResult(Intent, int);
我想通过示例代码简要介绍一下这个问题。了解它的工作原理。
答案 0 :(得分:14)
finish()
在您的活动完成后调用此选项并应关闭。 ActivityResult会传播回通过onActivityResult()启动你的人。
finishActivity(int requestCode)
用于完成您之前使用startActivityForResult(Intent,int)开始的另一项活动;
修改强>
就像你只是写finish();
一样,它只会完成您当前的活动,但是当您使用finishActivity(1001)
时,1001
是您从startActivityForResult(intent, 1001);
传递的请求代码{1}}所以它将完成你来自的活动
实施例
@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是启动活动。活动B将在活动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.
希望这很简单明了。