利用 RecordStore 持久化存儲用戶帳號(Account)與偏好設置(Preference,含自動登錄標誌)。啟動時讀取偏好,若開啟自動登錄則直接獲取帳號驗證並進入主界面。
public class Preference {
private boolean autoLogin;
public void serialize(DataOutputStream out) throws IOException { out.writeBoolean(autoLogin); }
public static Preference deserialize(DataInputStream in) throws IOException {
Preference p = new Preference(); p.setAutoLogin(in.readBoolean()); return p;
}
// getter/setter...
}
// Account 類似,存儲 username/password
public class Model {
private RecordStore store;
public static final String NAME = "accountstore";
public Model() { store = RecordStore.openRecordStore(NAME, true); }
public void saveAccount(Account a) { writeRecord(1, a); }
public Account getAccount(int id) { return readRecord(id, Account::deserialize); }
public void savePreference(Preference p) { writeRecord(2, p); }
public Preference getPreference(int id) { return readRecord(id, Preference::deserialize); }
// 通用讀寫輔助方法使用 ByteArrayOutputStream/DataOutputStream
}
public class LoginMIDlet extends MIDlet implements CommandListener {
private Form loginForm, successForm;
private TextField user, pass;
private ChoiceGroup autoLogin;
private Model model;
protected void startApp() {
model = new Model();
Preference p = model.getPreference(2);
if (p == null || !p.isAutoLogin()) {
showLoginForm();
} else {
Account a = model.getAccount(1);
// 自動驗證...
showSuccessForm();
}
}
// 命令處理:登錄時保存帳號與偏好
}
RecordEnumeration 或 RecordFilter。RecordStoreException、IOException 必須捕獲,避免 MIDlet 崩潰。