Перейти к содержанию
Fire Monkey от А до Я
  • 0

как узнать из сервиса запущено ли основное приложение?


fsdb

Вопрос

Как узнать из сервиса запущено ли основное приложение? допустим я в сервисе слежу за критичными параметрами и раз в минуту посылаю http запрос, и если приложение не запущено посылаю в шторку уведомление. если приложение запущено, то смысла нет в сервисе посылать сообщения в шторку. и собственно хочу из сервиса хочу знать - как узнать из сервиса запущено ли основное приложение?

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

Вам, судя по описанию задачи, не нужно знать, запущено ли хост приложение.

Понадобится компонент TNotificationCenter.

Пример работы из библиотеки примеров можно посмотреть в Object Pascal\Multi-Device Samples\Device Sensors and Services\AndroidNotificationServiceDemo\.

 

 

Ссылка на комментарий
  • 0
8 часов назад, Pax Beach сказал:

Вам, судя по описанию задачи, не нужно знать, запущено ли хост приложение.

Понадобится компонент TNotificationCenter.

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

Ссылка на комментарий
  • 0
1 час назад, Rusland сказал:

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

Ну как же! Нужно посмотреть пример.

Если приложение запущено, оно сразу обрабатывает сообщение сервиса.

Если приложение не запущено, появляется уведомление, что пришло сообщение или бандл (тоже сообщение) и стоит его принять в приложении.

Альтернатива:

1. использование интент-фильтра, тогда приложение либо будет запускаться, когда пришло сообщение, либо обрабатываться в приложении, если оно уже запущено.

2. Broadcast Receiver — принимаем сообщения, когда форма активна, выключаем приемник, когда форма скрыта.

 

Ссылка на комментарий
  • 0
Только что, Pax Beach сказал:

Ну как же! Нужно посмотреть пример.

Запустил пример  \Device Sensors and Services\AndroidNotificationServiceDemo\

Вне зависимости от того запущено приложение или нет, сообщение отправляется в шторку

Ссылка на комментарий
  • 0
3 минуты назад, Rusland сказал:

Вне зависимости от того запущено приложение или нет, сообщение отправляется в шторку

Ну если этот факт неприемлем — тогда альтернатива )

Ссылка на комментарий
  • 0
3 минуты назад, Pax Beach сказал:

 тогда альтернатива )

 

11 минуту назад, Pax Beach сказал:

Альтернатива:

1. использование интент-фильтра, тогда приложение либо будет запускаться, когда пришло сообщение, либо обрабатываться в приложении, если оно уже запущено.

 

Код  пожалуйста :)

 

Ссылка на комментарий
  • 0
9 минут назад, Rusland сказал:

Код  пожалуйста :)

Я пользуюсь BroadcastReceiver, выше привел ссылку на пример с реализацией.

Логика такая — если приложение не запущено (BroadcastReceiver не зарегистрирован), оно просто не получает сообщения, и не шлет в ответ ничего, если это нужно.

Качай и пользуйся =)

 

Изменено пользователем Pax Beach
Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...