同样通过RMS保存了用户的选项,不用每次都选择,最后当然需要有个函数对这些工作进行调度:
public static boolean selectLanguage()
{
boolean r=(instance.lang_!=null);
if(!r)
{
try
{
RecordStore rs=RecordStore.openRecordStore(LanguageRMS,true);
RecordEnumeration e=rs.enumerateRecords(null,null,false);
if(e.hasNextElement())
{
instance.lang_=new String(e.nextRecord());
r=true;
}
else
{
r=false;
}
rs.closeRecordStore();
}
catch(Exception ex)
{
r=false;
}
if(!r)
{
App.setCurrent(instance.new LanguageMenu());
}
}
return r;
}
程序管理器写完了,那么如何把他整合进MIDlet里面?看一下几个主要的函数就清楚了:
public TestSM()
{
App.createInstance(this);
}
protected void startApp() throws MIDletStateChangeException {
if(App.selectLanguage() && !App.restart())
{
start();
}
}
public void start()
{
SM.getInstance(App.getLanguage()).load("1");
App.setCurrent(new TestCanvas());
}
protected void pauseApp() {
App.pause();
}
这回是大功告成了。总结一下他的优点:
1、在需要返回前一屏的地方只需要一个App.restore();
2、自动处理暂停和恢复;
3、随时取得系统参数App.getProperty();
4、统一的错误处理;
5、整合多语言功能;
6、更方便的切换屏幕,只需要App.setCurrent()。
