finishActivity()可能的用例是什么?

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.

希望这很简单明了.