核心思路
- 登錄成功時:將用戶標識 (如 userId、token、用戶名) 存入
SharedPreferences。
SharedPreferences sp = getSharedPreferences("app_prefs", MODE_PRIVATE);
sp.edit().putString("token", token).putBoolean("is_logged_in", true).apply();
- 啟動頁:在
SplashActivity 或 MainActivity 的 onCreate 中讀取標識,若存在且有效,直接跳轉主界面或發起自動登錄請求。
SharedPreferences sp = getSharedPreferences("app_prefs", MODE_PRIVATE);
boolean loggedIn = sp.getBoolean("is_logged_in", false);
String token = sp.getString("token", null);
if (loggedIn && token != null) {
// 自動登錄或直接進入主頁
startActivity(new Intent(this, MainActivity.class));
} else {
startActivity(new Intent(this, LoginActivity.class));
}
finish();
安全建議
- 敏感信息 (密碼) **切勿** 明文存儲,僅存 Token/Session ID。
- Token 應有過期時間,啟動時校驗有效性,失效則清除並導向登錄頁。
- 考慮使用
EncryptedSharedPreferences (AndroidX Security) 加密存儲。