corner imagecorner image
IDEPlatformPluginsDocs & SupportCommunityPartners

Пользовательские компоненты Visual Mobile Designer: создание экранов ожидания для мобильных приложений

Для правильной работы приложений Java ME зачастую необходимо подключение к сети. К сожалению, скорость передачи данных в беспроводных сетях пока еще довольно мала. Любая фоновая задача, ожидающая подключения к сети или передачу данных, может приостановить выполнение приложения и оставить пользователей в недоумении, если на экране все застынет на неопределенное время или, если им придется отменять попытку подключения и повторять ее позже (или не повторять вовсе). Поэтому у разработчиков возникает вопрос, как избавить пользователей от этого неприятного, но распространенного явления?

Ответ – добавьте экран ожидания. Экраны ожидания позволяют пользователям выполнять блокирующую фоновую задачу (например, подключение к сети) и показывают процесс выполнения задачи или выводят на экран сообщение, информирующее пользователя о том, что приложение все еще выполняется. В этом учебном курсе будет показано, как Visual Mobile Designer (VMD) упрощает создание экранов ожидания с помощью пользовательского компонента WaitScreen, настраиваемого и добавляемого в поток операций приложения.

Если вы ранее не разрабатывали мобильные приложения в среде NetBeans, начните с изучения Краткого руководства пользователя по NetBeans Java ME MIDP.

Примечание. При использовании среды IDE NetBeans 6.8. обратитесь к учебному курсу Создание экранов ожидания в среде IDE NetBeans 6.8.

Содержание

Содержимое на этой странице относится к среде IDE NetBeans 6.9 или 7.0

Для работы с этим учебным курсом требуются программное обеспечение и ресурсы, перечисленные ниже.

Программное обеспечение или ресурс Требуемая версия
Среда IDE NetBeans с Java ME Версия 6.9 или более поздняя версия
Комплект для разработки приложений на языке Java (JDK) Версия 6

Принципы работы компонента WaitScreen

Существует два метода создания фоновых задач для компонента WaitScreen. Можно написать класс, внедряющий интерфейс CancellableTask, или использовать ресурс SimpleCancellableTask. Фоновые задачи присваиваются экрану ожидания с помощью метода setTask().

Когда фоновая задача выполнена, компонент WaitScreen автоматически переключается на другой отображаемый объект. При успешном выполнении задачи экран ожидания переключается на экран, определяемый методами setNextDisplayable(). Если задача не выполнена, экран ожидания переключается на экран, определяемый методами setFailureDisplayable(). Если информация о сбое не должна выводиться на экран по умолчанию, экран ожидания переключается на экран, определяемый методом setNextDisplayable(). Если следующий экран для отображения не указан, экран ожидания переключается на ранее отображавшийся экран.

Обратите внимание, что этот компонент доступен для приложений, поддерживающих только профиль устройства MIDP 2.0.

В начало

Установка и выполнение примера приложения

Перед тем как приступить к учебному курсу можно ознакомиться с окончательным результатом этой работы.

Для установки примера приложения "waitscreenexample" выполните следующие действия.

  1. Загрузите файл WaitScreenExample.zip
  2. Распакуйте файл.
  3. В среде IDE откройте меню Файл, выберите команду Открыть проект и перейдите к папке с распакованным файлом.
  4. Нажмите кнопку "Open Project".
    Представление "Проект" должно выглядеть следующим образом:
  5. Окно "Project" с файлами WaitScreenExample

  6. В окне "Проекты" щелкните узел проекта правой кнопкой мыши и выберите команду "Выполнить" или нажмите клавишу F6. После запуска приложения откроется окно эмулятора, отображающее это приложение, которое выполняется в эмуляторе устройства по умолчанию.
  7. В окне эмулятора нажмите кнопку под элементом "Launch." Эмулятор выведет на экран URL-адрес веб-сайта среды NetBeans: http://netbeans.org.
  8. Нажмите кнопку под элементом "OK". На экране появится запрос о том, действительно ли вы хотите выйти в Интернет.
  9. Для продолжения нажмите кнопку под элементом "Yes". Пока эмулятор пытается установить соединение с веб-сайтом, он отображает экран ожидания.

    Эмулятор DefaultColorPhone, отображающий пример приложения экрана ожидания

  10. После того, как эмулятор установит соединение, закройте приложение.

В начало

Создание мобильного приложения с использованием пользовательского компонента WaitScreen

Теперь, после ознакомления с компонентом WaitScreen, вернемся к началу и создадим данное приложение. Для создания приложения необходимо выполнить следующие действия.

  1. Создайте проект WaitScreenExample.
  2. Добавьте к проекту MyWaitScreen пакеты и визуальный мидлет.
  3. Добавьте к проекту MyWaitScreenMIDlet компоненты.
  4. Добавьте изображения.
  5. Добавьте команды "OK", "Back" и "Exit" к компонентам TextBox и WaitScreen.
  6. Создайте поток операций приложения.
  7. Создайте фоновую задачу для экрана ожидания.
  8. Запустите проект.

Примечание. Перед созданием проекта убедитесь в том, что пример проекта WaitScreenExample, запущенный ранее, закрыт или удален. В среде IDE NetBeans невозможно одновременно открыть проекты с идентичными именами.

Создание проекта "WaitScreenExample"

  1. Выберите в меню Файл команду Создать проект (CTRL+SHIFT+N). В разделе "Категории" выберите Java ME. В разделе "Проекты" выберите Приложение Mobile и нажмите кнопку "Далее".
  2. Введите WaitScreenExample в поле "Project Name". В поле "Project Location" укажите локальный каталог. Далее в тексте этот каталог будет называться каталогом $PROJECTHOME.
  3. Снимите флажок с параметра "Create Hello MIDlet". Нажмите кнопку "Next".
  4. Оставьте "Sun Java Wireless Toolkit 2.5.2" в качестве выбранной платформы эмулятора. Нажмите кнопку "Finish".

Добавление пакетов и визуального мидлета к проекту "WaitScreenExample"

  1. Выберите проект WaitScreenExample в окне "Проект", откройте меню Файл и выберите команду Создать файл (CTRL+N). В области "Категории" выберите "Java". В разделе "File Types" выберите "Java Package". Нажмите кнопку "Next".
  2. Введите waitscreenexample в поле "Package Name". Нажмите кнопку "Готово".
  3. Выберите проект waitscreenexample в окне "Проект", откройте меню Файл и выберите команду Создать файл (CTRL+N). В разделе "Categories" выберите "MIDP". В разделе "File Types" выберите "Visual MIDlet". Нажмите кнопку "Next".
  4. Введите MyWaitScreenMidlet в поля "MIDlet Name" и "MIDP Class Name". Нажмите кнопку "Finish".

Добавление компонентов к проекту "MyWaitScreenMidlet"

Откройте визуальный мидлет в Visual Mobile Designer (VMD). При выборе представления "Flow" вверху окна "VMD" будет открыт Flow Designer, в котором можно разработать поток операций приложения.

  1. Переключите визуальный мидлет на представление "Flow". Перетащите следующие компоненты "Screen" из окна "Palette" в окно "Flow Designer":
    • TextBox;
    • WaitScreen;
    • List;
    • Alert.
  2. Выберите textBox. В окне "Properties" (под окном "Component Palette") измените свойство "Title" на Text Box.
  3. Используйте ту же самую процедуру для изменения заголовков следующих компонентов:
    • Измените waitScreen на Wait Screen
    • Измените list на List
    • Измените alert на Alert
  4. Используйте значения свойств для следующих компонентов:
    • Измените свойство Text элемента textBox на http://netbeans.org
    • Измените свойство String элемента alert на Connection Failed
    • Измените свойство Text элемента WaitScreen на Please Wait...

Представление "Flow" должно выглядеть следующим образом:

Представление потока операций со значками компонентов

Добавление изображений

В этом разделе мы добавим изображения, используемые на экранах ожидания и предупреждения.

  1. Загрузите и скопируйте файлы alert.png и sandglass.png в папку $PROJECTHOME/src/waitscreenexample.
  2. Щелкните компонент alert правой кнопкой мыши и выберите команду "Свойства" во всплывающем меню.
  3. В диалоговом окне "Свойства" нажмите кнопку с многоточием (кнопка с многоточием) рядом со свойством Image.
  4. В диалоговом окне "Изображение" нажмите кнопку "Добавить".
    Будет добавлен компонент image1.
  5. Нажмите кнопку "Обзор" и укажите путь к скопированному файлу alert.png в диалоговом окне "Открыть".
  6. Нажмите кнопку "Открыть".
    Изображение будет добавлено.
  7. Нажмите кнопку "ОК", чтобы закрыть диалоговое окно "Изображение".
  8. Нажмите кнопку "Закрыть" для закрытия диалогового окна "Свойства".
    Изображение alert.png связано с компонентом alert.
  9. Повторите действия 2-8 для компонента waitScreen, добавьте изображение sandglass.png в качестве image2, а затем привяжите его к компоненту.

Добавление команд OK, Back и Exit к компонентам TextBox и WaitScreen

  1. Выберите элемент Команда ОК из раздела "Команды" на палитре. Перетащите его в компонент textBox.
  2. Выберите элемент Команда Back из раздела "Команды" на палитре. Перетащите его в компонент list.
  3. Выберите элемент Команда Exit из раздела "Команды" на палитре. Перетащите его в компонент list.

Создание потока операций приложения

Теперь можно создать поток операций в приложении.

  1. Откройте представление потока операций, щелкните команду Запущено элемента Mobile Device и перетащите его в компонент textBox.
  2. Аналогичным образом соедините другие компоненты, как показано на следующем рисунке.

    На экране "Flow Designer" соединение выполнено следующим образом: "Mobile Device" –> textBox –> waitScreen1 –> list1 –> "Mobile Device". Соединение команды "Failure" с компонентом alert, который затем соединяется с компонентом list

Создание фоновой задачи для экрана ожидания

  1. В представлении "Поток операций" щелкните компонент waitScreen правой кнопкой мыши и выберите в раскрывающемся меню команду "Свойства".
  2. В диалоговом окне "Свойства" выберите в раскрывающемся меню "Задача" команду <NewCancellableTask>, после чего нажмите кнопку "Закрыть".
    Задача simpleCancellableTask стала фоновой задачей компонента waitScreen.
  3. Нажмите кнопку "Исходный код" в верхней части Visual Mobile Designer, чтобы переключиться к исходному коду приложения.
  4. Добавьте метод для фоновой задачи, вставив следующий код в исходный код MyWaitScreenMIDlet после команды public void destroyapp(boolean unconditional) { }:
  5.       private void getServerInfo() throws IOException {
          String url = textBox.getString();
          list.deleteAll();
          /**
          * Открытие HttpConnection
          */ 
          HttpConnection hc = (HttpConnection) Connector.open(url);
    
          /**
          * Получение ключа поля заголовка и поля заголовка по индексу
          * и последующая вставка в список.
          */
          list.setTitle(hc.getURL());   
          for (int i=0;hc.getHeaderFieldKey(i)!=null; i++){
          list.insert(i,hc.getHeaderFieldKey(i)+" :"+hc.getHeaderField(i),null);       
          }     
          /**
          * Закрытие...
          */
          hc.close();
          } 
    
  6. Щелкните исходный код правой кнопкой мыши и выберите в контекстном меню команду "Исправить выражения импорта" или нажмите CTRL+SHIFT+I.
  7. Найдите строку public class MyWaitScreenMidlet extends MIDlet implements CommandListener { (строка 18) и вставьте final для получения следующего кода:
  8.  public final class MyWaitScreenMidlet extends MIDlet implements CommandListener {
  9. Найдите метод public MyWaitScreenMidlet() в исходном коде (строка 38) и вставьте следующий код после команды public MyWaitScreenMidlet() {:
  10.  List list1 = getList();
  11. Щелкните элемент "Экран", чтобы переключиться в представление экрана, и выберите SimpleCancellableTask.
  12. В окне "Свойства" нажмите кнопку с многоточием (кнопка с многоточием) для свойства Исполняемый код.
  13. Щелкните команду "Перейти к источнику" в диалоговом окне "Исполняемый код".
  14. Найдите метод getSimpleCancellableTask() в исходном коде (строка 328) и вставьте следующий код после кода public void execute() throws Exception { вместо // write task-execution user code here:
  15.  getServerInfo();

Запуск проекта

Для запуска главного проекта нажмите клавишу F6 или

выберите "Run" > "Run Main Project".

В начало

Документация Javadoc для компонентов WaitScreen и SimpleCancellableTask

Среда IDE NetBeans предоставляет документацию Javadocs по API-интерфейсу для компонентов WaitScreen или SimpleCancellableTask, а также для других компонентов, которые можно использовать в VMD. Чтобы просмотреть документацию Javadocs для компонентов WaitScreen и SimpleCancellableTask, выполните следующие действия:

  1. Наведите курсор на компоненты WaitScreen и SimpleCancellableTask в исходном коде и нажмите сочетание клавиш CTRL+SHIFT+ПРОБЕЛ или выберите в меню Исходный код команду Показать документацию.
    Во всплывающем окне появится документация Javadoc по этому элементу.
  2. Щелкните значок команды "Показать документацию во внешнем веб-обозревателе" ("Показать документацию во внешнем веб-обозревателе") во всплывающем окне, чтобы просмотреть подробные сведения о компоненте WaitScreen или SimpleCancellableTask в обозревателе.

В начало



Дополнительные сведения

В начало