无法理解完成方法android

时间:2017-09-20 08:45:52

标签: java android

protected void onCreate(Bundle savedInstanceState) {
  //if user is already logged in open the profile activity directly
  if (SharedPrefManager.getInstance(this).isLoggedIn()) {
    finish();
    startActivity(new Intent(this, Home.class));
  }
  buttonSignIn.setOnClickListener(this);
  buttonSignUp.setOnClickListener(this);
}

如果用户已经登录,有人可以向我解释为什么finish()在启动Home.class之前被调用。我试图通过一些源代码而无法理解此

4 个答案:

答案 0 :(得分:0)

finish()之后,您无法从活动获得上下文。

你必须开始这样的活动:

if (SharedPrefManager.getInstance(this).isLoggedIn()) {            
        startActivity(new Intent(this, Home.class));
        finish();
    }

答案 1 :(得分:0)

只需调用finish(); 它更像是这样做的意图:

Intent intent = new Intent(whereYouareActivity.this , mainActivity.class};
startActivity(intent);

答案 2 :(得分:0)

当您完成一项活动时,活动会被销毁但不会被销毁。这是Android编程的一个重要方面,对于理解它与其他平台的不同之处非常重要。

您可以通过添加以下行来完成您的活动: -

if (SharedPrefManager.getInstance(this).isLoggedIn()) {            
        startActivity(new Intent(this, Home.class));
        finish();
    }

答案 3 :(得分:0)

通过致电finish(),您可以主动关闭当前的活动。这可以防止用户按下后退按钮时再次显示您的活动。