2015-04-16 81 views
0

我有一個登錄屏幕設置。在成功登錄時,我正在實現下面的代碼,並想知道這是否是最佳做法,或者是否有更好的方式來在用戶成功登錄後「更改活動」。在下面的代碼片段中,我目前正在更改到成功登錄時的另一項活動。這是改變活動的正確方法嗎?Android發佈成功登錄

if(password.equals(storedPassword)) { 
    Toast.makeText(MainActivity.this, "Congrats: Login   Successful", Toast.LENGTH_SHORT).show(); 
    dialog.dismiss(); 
    Intent intent = new Intent(MainActivity.this, FragmentActivity.class); 
    startActivity(intent); 
    finish(); 
} else { 
    Toast.makeText(MainActivity.this, "User Name or Password does not match", Toast.LENGTH_SHORT).show(); 
} 

回答

1

這是開始活動的正確方法。 但是,請確保您在後臺線程(例如Async Task)中運行您的登錄API調用。在回調回調方法中,您可以使用以下方法運行與UI相關的代碼(在主線程中)。

​​
0

你做得正確。只要確保你在後臺進行API調用。如果你想,那麼你可以在之前添加動畫代碼

finish(); 
0

你的方法是正確的。

我的建議是用startActivityForResult()的方法。 finish()將被稱爲onActivityResult()

if(password.equals(storedPassword)) { 
    Toast.makeText(MainActivity.this, "Congrats: Login   Successful", Toast.LENGTH_SHORT).show(); 
    dialog.dismiss(); 
    Intent intent = new Intent(MainActivity.this, FragmentActivity.class); 
    startActivityForResult(intent,LOGIN_ACTIVITY_REQUEST); 

} else { 
    Toast.makeText(MainActivity.this, "User Name or Password does not match", Toast.LENGTH_SHORT).show(); 
} 


@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    // Check which request we're responding to 
    if (requestCode == LOGIN_ACTIVITY_REQUEST) { 
     // Make sure the request was successful 
     if (resultCode == RESULT_OK) { 
      // set RESULT_OK from Login Activity when user is successfully 
      // login using setResult(RESULT_OK); 
      // Now we can call finish here 
      finish(); 
     } 
    } 
}