Blackberry - как запустить мой сервис при загрузке телефона?

Я хочу запустить собственную реализацию сервиса при запуске телефона?

Как этого добиться?

3 ответа

Вам просто нужно установить параметры "Системный модуль" и "Автоматический запуск" в свойствах проекта в JDB Blackberry. Это запустит ваше приложение при загрузке телефона.

Цитата из How To - Написать безопасный код инициализации

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

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

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

class MyApp implements SystemListener {
    public static void main(String[] args) {
        MyApp appInstance = new MyApp();
        // If system startup is still in progress when this
        // application is run.
        if (ApplicationManager.getApplicationManager().inStartup()) {
            appInstance.addSystemListener(appInstance);
        } else {
            appInstance.doStartupWorkLater();
        }
        appInstance.enterEventDispatcher();
    }
    // constructs
    MyApp() {
    }   
    private void doStartupWorkLater() {
        invokeLater(new Runnable() {
            public void run() {
                doStartupWork();
            }
        });
    }  
    private void doStartupWork() {
    }    
    // SystemListener
    public void powerUp() {
        removeSystemListener(this);
        doStartupWork();
    }
    // TODO: other SystemListener methods
}

Вы можете использовать механизм IPC (своего рода) для обмена данными между "Сервисом" и Приложением. Есть два способа сделать это:

  1. net.rim.device.api.system.RuntimeStore имеет методы для размещения и получения объекта, который идентифицируется уникальным идентификатором (long). Этот идентификатор может быть сгенерирован из среды JDE.
  2. net.rim.device.api.system.ApplicationManager имеет методы, позволяющие публиковать глобальные события, которые могут обмениваться данными (снова идентифицируемыми уникальным идентификатором). Другое приложение должно будет реализовать GlobalEventListener и зарегистрироваться в системе - addGlobalEventListener.

В первом подходе другой объект не уведомляется, когда данные добавляются в хранилище.

Другие вопросы по тегам