@Override
public void onBackPressed() {
// 不調用 super.onBackPressed(),直接移動任務到後台
moveTaskToBack(true);
}
用戶在主頁按返回鍵,應用退到後台而非銷毀;再次啟動直接回主頁。
// LoginActivity 登錄成功處理
Intent intent = new Intent(LoginActivity.this, MainActivity.class);
startActivity(intent);
finish(); // 關鍵:從棧中移除 LoginActivity
此後按返回鍵直接退出應用,無需額外處理返回鍵邏輯。
| 方案 | 優點 | 缺點 |
|---|---|---|
| onBackPressed | 保留登錄頁實例,切帳號快 | 需處理多 Activity 棧同步 |
| finish 登錄頁 | 邏輯清晰,符合單入口原則 | 切帳號需重新啟動登錄流程 |
採用方案二:登錄/註冊屬於獨立任務棧,主業務棧無登錄頁記錄,返回鍵自然退出應用。