R K*_*mar 4 android android-intent android-layout android-fragments
正如我已经知道的那样Finish() and FinishActivity().即
finish() 在您的活动完成后调用此选项并应关闭.
finishActivity() 用于完成您之前开始的另一项活动 startActivityForResult(Intent, int);
我想通过示例代码简要介绍一下这个问题.了解它是如何工作的.
Inn*_*ler 14
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;
}
Run Code Online (Sandbox Code Playgroud)
因此,上面的示例将完成您编写的当前活动,finish();并完成您之前编写的活动finishActivity(107);,我已经告诉您这107是您从其他活动传递的代码.
假设您有2个活动(活动A和活动B),主活动A是启动活动.活动B将在活动B之上运行,并且是模糊视图.当你重定向到活动B时,你没有完成活动A.你就是这样开始活动B.
startActivityForResult(intent, 107);
Run Code Online (Sandbox Code Playgroud)
所以在活动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;
}
Run Code Online (Sandbox Code Playgroud)
这将完成你的活动A和B.
希望这很简单明了.
| 归档时间: |
|
| 查看次数: |
6765 次 |
| 最近记录: |