Я создал static
Form
в классе MIDlet
:
public static Form lastForm = null;
Затем я установил его на фактическую форму в каждой форме моей project
:
if (!myMidlet.lastCanvas.isEmpty())
myMidlet.lastCanvas.clear();
myMidlet.lastForm = this;
Тогда в startApp()
я писал:
public void startApp() {
...
if (lastForm != null)
lastForm.showBack();
else
{
new MainForm(this).show();
}
}
РЕДАКТИРОВАТЬ:
Для холста:
ВMIDlet
класс:
public static Hashtable lastCanvas = new Hashtable();
В canvas
классе (конструкторе):
if (myMidlet.lastForm != null)
myMidlet.lastForm = null;
if (!myMidlet.lastCanvas.isEmpty())
myMidlet.lastCanvas.clear();
myMidlet.lastCanvas.put(new String("Form"), this);
И в startApp()
:
public void startApp() {
VKBImplementationFactory.init();
Display.init(this);
if (lastForm != null)
lastForm.showBack();
else if (!lastCanvas.isEmpty())
{
javax.microedition.lcdui.Display.getDisplay(this).setCurrent((Canvas)lastCanvas.get(new String("Form")));
}
else
new MainForm(this).show();
}
Я думаю, что этот подход использования HashTable
будет работать даже для любой lcdui
формы.