Как можно запустить фоновое приложение-службу и UIApplication в одно и то же время

#blackberry

#ежевика

Вопрос:

Я хочу запустить фоновое приложение-службу и UIApplication одновременно.

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

На самом деле я запутался в том, как вызвать или запустить фоновую службу в потоке событий.

Ответ №1:

Вот как вы можете настроить альтернативную точку входа для своего приложения:

A- Использование подключаемого модуля BlackBerry® Java® для Eclipse®

После создания проекта для исходного приложения создайте альтернативную точку входа для запуска пользовательского интерфейса приложения.

1- Дважды щелкните на BlackBerry_App_Descriptor.xml в рамках вашего проекта.
2- Отключите системный модуль и не отображайте значок приложения на главном экране BlackBerry.
3-Щелкните на вкладке Альтернативная точка входа.
4- Нажмите кнопку Добавить.
5 — Введите название точки входа и нажмите OK.
6- Укажите аргумент приложения, который будет запускать приложение с использованием этой альтернативной точки входа (например: графический интерфейс).
7- Перейдите к разделу «Общие шаги».
8- Измените метод main () исходного проекта следующим образом:

 public static void main(String[] args) {
     if ( args != null amp;amp; args.length > 0 amp;amp; args[0].equals("gui") ){
          // code to initialize the app
          theApp.enterEventDispatcher();
     } else {
          // code to launch the background thread }
     }
}
  

B- Использование BlackBerry JDE

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

1- Щелкните правой кнопкой мыши узел проекта и выберите Свойства.
2- В окне свойств выберите вкладку Приложения.
3- Убедитесь, что установлены следующие параметры: Автозапуск при запуске и системный модуль (для регистрации потока в системе).
4- Создайте другой проект в той же папке, что и исходный проект. Щелкните правой кнопкой мыши новый узел проекта и выберите Свойства.
5- Перейдите на вкладку Приложения и выберите альтернативную точку входа приложения CLDC из выпадающего списка Тип проекта. Как показано в прикрепленном файле, выберите название исходного проекта (например, traffic reporter) из альтернативной точки входа для выпадающего списка. Также укажите аргументы, которые позволили бы запустить приложение, используя эту альтернативную точку входа (например: графический интерфейс). Перейдите к разделу «Общие шаги».
6- Измените метод main () исходного проекта следующим образом:

 public static void main(String[] args) {
     if ( args != null amp;amp; args.length > 0 amp;amp; args[0].equals("gui") ){
          // code to initialize the app
          theApp.enterEventDispatcher();
     } else {
          // code to launch the background thread }
     }
}
  

Комментарии:

1. Спасибо, Ашраф, но я хочу вызвать фоновую службу из потока событий. Возможно ли это? если да, то, пожалуйста, скажите мне, как?

2. Используйте UIApplication.requestForeground() ….. Если эти ответы помогут вам, пожалуйста, отметьте их и отметьте как ответ

3. @AshrafBashir. Прекрасное объяснение.

4. @AshrafBashir Спасибо. Хороший ответ. Мое приложение работает нормально, но я не могу отобразить значок приложения? Как мы можем этого добиться?

5. я должен запустить два фоновых приложения. Как мне следует запустить?@ Ашрафбашир

Ответ №2:

http://supportforums.blackberry.com/t5/Java-Development/Background-thread-for-push-notifications/td-p/563071

форумы разработчиков Blackberry полны тем и примеров кода для выполнения именно этого.

Лично я использую альтернативный метод точки входа, запускаю фоновое приложение как UIApplication с автозапуском (без значка), которое никогда не выводит на главный экран, но использует свой собственный поток отправки для вызова диалогового окна или подобных уведомлений, а затем, когда нажимается фактический значок Home, я запускаю точку входа в пользовательский интерфейс, чтобы поиграть с пользователем.

Комментарии:

1. Спасибо, Дэн, но я хочу вызвать фоновую службу из потока событий. Возможно ли это? если да, то, пожалуйста, скажите мне, как?

2. Для этого есть два способа — Метод 1. Создайте приложение, которое содержит как пользовательский интерфейс, так и фоновый прослушиватель и переопределяет метод close () только для самого фона — другими словами, оно никогда не вызывает System.exit() . Это может выполнять всю обработку и пользовательский интерфейс и обеспечивает довольно простую связь между элементами. Реализация может быть болезненной, потому что вам нужно везде запрашивать Backgroundground. —Метод 2: Я использую альтернативный метод ввода, описанный выше, и передаю ссылку на мой одноэлементный прослушиватель автозапуска (использую одноэлементный RuntimeStore) в пользовательское приложение при запуске.

3. Привет, Дэн, можешь показать пример полного кода, как это сделать? Мне нужно установить приложение-службу из пользовательского интерфейса, пожалуйста, скажите мне, как это сделать?

4. Следуйте потоку из моего ответа, он многое объясняет в теории и указывает на другие потоки для получения еще большего количества примеров / теории. У меня нет времени копировать / вставлять код для кого-либо, у меня едва хватает времени на просмотр здесь atm 🙂