欲驗證用戶是否已註冊,需讀取 SharedPreferences 中所有鍵值對。有人嘗試解析 XML 檔案,實屬過度設計。
SharedPreferences 提供 getAll() 方法,直接返回 Map<String, ?>,遍歷即可:
Map<String, ?> allData = sharedPreferences.getAll();
for (Map.Entry<String, ?> entry : allData.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
// 業務邏輯判斷
}
getAll() 會一次性載入所有資料,若資料量極大(超過數 MB),建議改用 registerOnSharedPreferenceChangeListener 監聽特定鍵變更,避免全量讀取造成主執行緒卡頓。
善用框架提供的高階 API,能寫出更健壯、可維護的程式碼。