Как получить состояние возобновления работы приложения на iOS и Android?

Есть ли что-то, что можно проверить с точки зрения кода при возобновлении работы приложения на iOS и Android?

например когда приложение сворачивается и восстанавливается (приложение все еще работает в фоновом режиме устройства).


person 6String_Coder    schedule 13.07.2016    source источник


Ответы (2)


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

uses FMX.Types, FMX.Platform;

function TForm1.HandleAppEvent(AAppEvent: TApplicationEvent; AContext: TObject): Boolean;
begin
  case AAppEvent of
    TApplicationEvent.FinishedLaunching:    Log.d('Launched.');
    TApplicationEvent.BecameActive:         Log.d('Gained focus.');
    TApplicationEvent.EnteredBackground:    Log.d('Now running in background.');
    TApplicationEvent.WillBecomeForeground: Log.d('Restoring from background.');
    TApplicationEvent.WillBecomeInactive:   Log.d('Going to lose focus.');
    TApplicationEvent.WillTerminate:        Log.d('Quitting the application.');
    TApplicationEvent.LowMemory:            Log.d('Device running out of memory.');

    // iOS only
    TApplicationEvent.TimeChange:           Log.d('Significant change in time.');
    TApplicationEvent.OpenURL:              Log.d('Request to open an URL.');
  end;

  Result := True;
end;

procedure TForm11.FormCreate(Sender: TObject);
var
  aFMXApplicationEventService: IFMXApplicationEventService;
begin
  if TPlatformServices.Current.SupportsPlatformService(IFMXApplicationEventService,
    IInterface(aFMXApplicationEventService))
  then
    aFMXApplicationEventService.SetApplicationEventHandler(HandleAppEvent)
  else
    Log.d('Application Event Service not supported.');
end;

Подробнее о типах событий здесь.

хорошая статья по теме Paweł Głowacki (для Delphi XE5, но все равно полезно).

person JRL    schedule 13.07.2016

В iOS вы можете добавить флаг в

applicationDidEnterBackground

в appDelegate, чтобы узнать, входит ли пользователь в фоновый режим и,

applicationDidBecomeActive

чтобы знать, что пользователь возвращается в приложение из фона

person Abd Aboudi    schedule 13.07.2016