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

TThread В фоновом режиме


Martifan

Вопрос

Доброго времени суток. Подскажите пожалуйста, как заставить работать TThread в приложении, если приложение свернуто, т.е находится в фоновом режиме. Я делаю так: 

var I: Integer;
begin
  I := 0;
  TThread.CreateAnonymousThread(procedure ()
  var Return: String;
  begin
    repeat
    Label1.Text := I.ToString;
    I := I + 1;
    Sleep(1000);
//    Application.ProcessMessages;
    until I > 10;
  TThread.Synchronize (TThread.CurrentThread,
    procedure ()
    begin

    end);
  end).Start;
end;

Когда активно приложение, все работает хорошо, после того как сворачиваю, т.е. нажимаю кнопку Home, аппликация сворачивается и процесс останавливается. Когда обратно разворачиваю, процесс продолжается. Как заставить работать приложение в фоновом режиме? Заранее спасибо.

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

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

  • 0

Сам недавно бился с этим вопросом. ответ нашел на этом форуме.

Но после долгого гугления вопроса сложилось впечатление, что на сегодняшний день из ios можно выжать максимум три минуты работы приложения в фоне, потом приложение перестает реагировать. в моем случае было необходимо передавать координаты. Что только не перепробовал - три минуты и все. можно мухлевать: Воспроизводить аудио или записывать с микрофона - но ребята из apple при публикации к такому отнесутся не очень. вот исходники которые нарыл - пример отрабатывает в фоне три минуты

 

BackgroundTaskManager.zip

Ссылка на комментарий
  • 0
В 05.04.2020 в 04:30, Edward Tarasov сказал:

Сам недавно бился с этим вопросом. ответ нашел на этом форуме.

Но после долгого гугления вопроса сложилось впечатление, что на сегодняшний день из ios можно выжать максимум три минуты работы приложения в фоне, потом приложение перестает реагировать. в моем случае было необходимо передавать координаты. Что только не перепробовал - три минуты и все. можно мухлевать: Воспроизводить аудио или записывать с микрофона - но ребята из apple при публикации к такому отнесутся не очень. вот исходники которые нарыл - пример отрабатывает в фоне три минуты

 

BackgroundTaskManager.zip 8 \u043a\u0411 · 0 загрузок

Спасибо, а если каждый 2 минуты аппликация будет вызывать какой нибудь метод из моего веб сервиса?

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

Спасибо, а если каждый 2 минуты аппликация будет вызывать какой нибудь метод из моего веб сервиса?

Без разницы. конкретно этот пример отрабатывает три минуты. также на ios есть возможность регистрировать функцию, которой IOS будет выделять время для выполнения, там тоже жесткие ограничения и когда ей выделять время - одному джобсу известно(было, теперь уже нет)... т.е. она может выполняться раз в час, сутки, месяц и т.д. На сегодняшний день как я понял возможно удерживать приложение в фоне работоспособным это - VOiP(и тот в следущей версии толи в этой уже) обещали прикрыть(Facebook в шоке работает над решением), работа с микрофоном, воспроизведение аудио.. вроде еще геолокация должна позволять приложению работать, но что то у меня не вышло. с микрофоном история такая - как только запись прервали - приложение выключается, с аудио - тоже....  именно по этому я просил у вас в лс, рабочий пример записи в буффер с микрофона а не в файл, чтобы серверу отправлять аудио без прерывания записи... сейчас работаю над этим.

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

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

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

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

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

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

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

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

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

×
×
  • Создать...