Гарантируется ли выполнение MIDlet.startApp () полностью перед вызовом MIDlet.pauseApp () или MIDlet.destroyApp ()? - PullRequest
1 голос
/ 26 декабря 2011

Javadoc класса MIdlet утверждает, что MIdlet.destroyApp() будет вызываться, если MIdlet.startApp() выдает RuntimeException.Предполагая, что исключение не выдается при выполнении MIDlet.startApp().

Гарантируется ли выполнение MIDlet.startApp() полностью до вызова MIDlet.pauseApp() или MIDlet.destroyApp()?

Пример:

Реализация класса MIdlet:

startApp()
{
  System.out.println("A");
  System.out.println("B");
}

pauseApp()
{
  System.out.println("C");
  System.out.println("D");
}

destroyApp()
{
  System.out.println("E");
  System.out.println("F");
}

Выход:

A
E
F

Выход (альтернативный):

A
C
D

Возможны ли выходы вышесценарии?

1 Ответ

1 голос
/ 28 декабря 2011

MIDP javadoc отвечает

" Если во время запуска startApp () возникает исключение Runtime, мидлет будет уничтожен НЕМЕДЛЕННО. Будет вызван его destroyApp (), позволяющий очистить мидлет. "

и аналогично для pauseApp() и destroyApp().

Поэтому ответьте на ОП: НЕ гарантированно выполнит метод атомарно. runtime exception может / изменит состояние мидлета и, в действительности, выполнит поток.

...