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 (своего рода) для обмена данными между "Сервисом" и Приложением. Есть два способа сделать это:
- net.rim.device.api.system.RuntimeStore имеет методы для размещения и получения объекта, который идентифицируется уникальным идентификатором (long). Этот идентификатор может быть сгенерирован из среды JDE.
- net.rim.device.api.system.ApplicationManager имеет методы, позволяющие публиковать глобальные события, которые могут обмениваться данными (снова идентифицируемыми уникальным идентификатором). Другое приложение должно будет реализовать GlobalEventListener и зарегистрироваться в системе - addGlobalEventListener.
В первом подходе другой объект не уведомляется, когда данные добавляются в хранилище.