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

Manitikyl

Пользователи
  • Постов

    4
  • Зарегистрирован

  • Посещение

Активность репутации

  1. Like
    Manitikyl отреагировална Brovin Yaroslav в Как узнать, что приложение меняет свое состояние?   
    В XE6 появился специальный сервис для контролирования смены состояния приложения IFMXApplicationEventService. Он позволяет задать свой обработчик на событие смены состояния. Всего поддерживаются следующие типы состояний TApplicationEvent:
    FinishedLaunching - приложение запущено BecameActive - приложение стало активным, после того, как до этого было свернутым. WillBecomeInactive - приложение будет активировано EnteredBackground - приложение свернулось WillBecomeForeground - приложение будет свернуто WillTerminate - приложение будет завершено LowMemory - Нехватка памяти OpenURL - открытие приложение по ссылке. 1 Способ. Запрос сервиса IFMXApplicationEventService
    Соответственно, чтобы узнать о смене состояния нужно:
    Запросить сервис:
    uses FMX.Platform; var ApplicationService: IFMXApplicationEventService; begin TPlatformServices.Current.SupportsPlatformService(IFMXApplicationEventService, ApplicationService); Создать свой обработчик и задать его при помощи полученного сервиса:
    function TForm1.ApplicationEventChanged(AAppEvent: TApplicationEvent; AContext: TObject): Boolean; begin // Здесь получаем новое состояние приложения end; var ApplicationService: IFMXApplicationEventService; begin TPlatformServices.Current.SupportsPlatformService(IFMXApplicationEventService, ApplicationService); if ApplicationService <> nil then ApplicationService.SetApplicationEventHandler(ApplicationEventChanged); end; 2 Способ. Подписка на получение сообщения:
    Вместе со сменой состояния платформа FMX осуществляет широковещательную рассылку сообщения о смене состояния: TApplicationEventMessage
    Второй способ заключается в подписке на это сообщение:
    Подписываемся на получение сообщения TApplicationEventMessage:
    uses System.Messaging; // Подписка TMessageManager.DefaultManager.SubscribeToMessage(TApplicationEventMessage, DoApplicationEventChanged); Получаем сообщения
    procedure DoApplicationEventChanged(const Sender: TObject; const Message: TMessage); begin end; Не забываем отписаться от сообщений, когда это больше уже не нужно:
    // Отписка TMessageManager.DefaultManager.Unsubscribe(TApplicationEventMessage, DoApplicationEventChanged);
×
×
  • Создать...