MIDP的子系統Record Management System提供了MIDlet的持久性存儲,精通MIDP子系統RMS系列文章對其使用進行了具體介紹。本文講述如何使用RMS提供的功能實現應用程序的定制功能——自動登陸。
我們的設計思路非常簡單,在RecordStore中存儲用戶的設置和用戶的信息(用戶名和密碼),假如用戶選擇自動登陸的話,那么下次當用戶想聯網的時候將跳過登陸界面,系統會從RecordStore中讀取用戶和密碼,經過服務器的驗證后轉入到適當的界面。我對整個程序進行了簡化,我們不進行聯網,對信息的存儲也都從簡,只是為了說明RMS實現應用程序定制的思路,因此給出的代碼并沒有全面測試和優化。下面是程序的截圖
我們用Account和PReference分別存儲用戶信息和用戶的個性化設置,同樣在這兩個類中提供序列化的方法,這樣方便我們從RecordStore中讀取和寫入。這里只給出Preference類的代碼,Account類似。
package com.j2medev.autologin;
import java.io.*;
public class Preference
{
private boolean autoLogin;
public Preference(boolean _autoLogin)
{
this.autoLogin = _autoLogin;
}
public Preference()
{
}
public void serialize(DataOutputStream dos) throws IOException
{
dos.writeBoolean(autoLogin);
}
public static Preference deserialize(DataInputStream dis)
throws IOException
{
Preference preference = new Preference();
preference.setAutoLogin(dis.readBoolean());
return preference;
}
public boolean isAutoLogin()
{
return autoLogin;
}
public void setAutoLogin(boolean autoLogin)
{
this.autoLogin = autoLogin;
}
}
我們需要一個Model類來處理讀取和寫入RecordStore數據的邏輯,它也非常簡單。為了簡化程序我們規定首先寫入Account然后寫入Preference,這樣我們讀取的時候只要通過recordID分別為1和2來讀取了,在實際使用的時候通常會比較復雜,我們要借助過濾器等查找,可以參考我的基于MIDP1.0實現個人通訊錄。
package com.j2medev.autologin;
import javax.microedition.rms.*;
import java.io.*;
public class Model
{
private RecordStore accountStore;
public static final String RNAME = "accountstore";
新聞熱點
疑難解答