<分区>
我已经知道 Finish() 和 FinishActivity()
。即
finish()
当您的 Activity 完成并且应该关闭时调用此方法。
finishActivity()
用于完成您之前使用 startActivityForResult(Intent, int);
我想用示例代码简要介绍一下。了解其工作原理。
<分区>
我已经知道 Finish() 和 FinishActivity()
。即
finish()
当您的 Activity 完成并且应该关闭时调用此方法。
finishActivity()
用于完成您之前使用 startActivityForResult(Intent, int);
我想用示例代码简要介绍一下。了解其工作原理。
最佳答案
finish()
当您的 Activity 完成并且应该关闭时调用此方法。 ActivityResult 会传播回通过 onActivityResult() 启动您的人。
finishActivity(int requestCode)
用于完成您之前使用 startActivityForResult(Intent, int) 启动的另一个 Activity ;
编辑
就像如果你简单地写 finish();
然后它就会结束你当前的 Activity ,但是当你使用 finishActivity(1001)
然后 1001
是您从 startActivityForResult(intent, 1001);
传递的请求代码,因此它将完成您来自的 Activity
例子。
@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;
}
所以上面的例子将完成你当前的 Activity ,就像你写的 finish();
一样,也会完成你以前的 Activity ,因为我们写的是 finishActivity(107);
,其中我已经告诉过您 107
是您从其他 Activity 传递的代码。
假设您有 2 个 Activity ( Activity A 和 Activity B),主 Activity A 是起始 Activity 。 Activity B 将在 Activity B 之上运行,并且是一个模糊 View 。当我重定向到 Activity B 时,您还没有完成 Activity A。而您正在像这样开始 Activity B
startActivityForResult(intent, 107);
所以在 Activity 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;
}
这将完成您的 Activity A 和 B。
希望这简单明了。
关于android - finishActivity() 的可能用例是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22032784/