Свернуть и вернуть дисплей
Я хочу свести к минимуму мое приложение и после окончания таймера вернуть его обратно.
Я использую код ниже.
Чтобы свернуть приложение, используйте следующую строку кода:
Display.getDisplay (MIDLET_CLASS_NAME).setCurrent (null);
Чтобы вернуть экран, используйте следующее:
Display.getDisplay (MIDLET_CLASS_NAME).setCurrent (myCanvas);
Но когда дисплей телефона отключен и переходит в режим часов, мой дисплей мидлета не отображается, пока не будет нажата какая-либо кнопка.
любая идея?
1 ответ
От вашего вопроса звучит, что вы ожидаете setCurrent
каким-то образом "заставить" устройство немедленно отобразить ваш экран или, возможно, вернуться только после того, как экран станет видимым.
Это не так, как четко объяснено в документации API для Display.setCurrent:
Просит другой
Displayable
объект должен быть виден на дисплее. Изменение, как правило, вступает в силу не сразу. Это может быть отложено, так что это происходит между вызовами метода доставки события, хотя не гарантируется, что это произойдет до вызова следующего метода доставки события.setCurrent
метод возвращается немедленно, не дожидаясь изменения...... если приложение находится в фоновом режиме, передавая ненулевую ссылку
setCurrent
может быть интерпретировано программным обеспечением для управления приложениями как запрос о том, что приложение запрашивает вывод на передний план... Это только запросы, и не требуется, чтобы программное обеспечение для управления приложениями своевременно выполняло эти запросы, если все...
Рассмотрите возможность перестройки вашего мидлета, чтобы приспособиться к указанному поведению
Если myCanvas
является экземпляром Canvas, можно использовать события showNotify().
Для общего Displayable
Метод screen isShown () проверяет, действительно ли он виден на дисплее.
Иногда может даже иметь смысл позволить пользователю явно подтвердить возврат из фона, например
display.setCurrent(new Alert("back to foreground", "dismiss to continue...",
null, AlertType.INFO), myCanvas);