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

[Android]Перезапуск приложения


Kitty

Вопрос

Подскажите, пожалуйста, как решить следующий вопрос, если конечно это возможно.
Вот запустила на телефоне свое приложение, ввожу определенные данные в нем. Затем сворачиваю его в фон. Открываю что-то другое. Затем возвращаюсь к своему приложению – захожу в фоновые свернутые нажимаю на свое приложение, оно запускается, все нормально – вижу данные введенные при старте. Однако иногда при вызове приложения из фона оно стартует полностью заново – вижу заставку при страте и обнуление введенных данных. Обычно это когда приложение долго свернуто.
Можно ли заставить приложение, если оно было свернуто, все запомнить, и не запускаться заново или ОС Андроид это не позволяет, или может добавить какой-то бесполезный таймер, чтобы он что-то совершал без остановки, и будет ли он вообще работать, когда приложение ушло с главного экрана?
Спасибо.

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

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

  • 0
  • Модераторы

Для сохранения состояния - посмотрите, вот этот хелп FireMonkey Save State.

Не вижу смысла держать приложение в памяти, если оно ничего (полезного) не делает. В общем-то, Андроид также считает :)

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

Не вижу смысла держать приложение в памяти, если оно ничего (полезного) не делает. В общем-то, Андроид также считает

Приложение реагирует на маячки TBecon. И вдруг выясняется, что когда оно долго в фоне, оно перестает реагировать на маячки (вход в зону - выход из зоны). Это печально.

Ссылка на комментарий
  • 0
  • Модераторы

Выгружать будет в любом случае, вот сервис бы помог (вообще решил бы наверно все ваши проблемы). В вашем же случае, наверно стоит попробовать повесить таймер или ещё что-то, нужно смотреть как будет реагировать (на индивидуальные и комплексные меры)... И всё же, я сомневаюсь, что получится добиться постоянно висящего в памяти приложения.

Может, кто-то ещё сможет подсказать рабочее решение...

 

p.s. С маячками дел не имел...

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

Приложение реагирует на маячки TBecon. И вдруг выясняется, что когда оно долго в фоне, оно перестает реагировать на маячки (вход в зону - выход из зоны). Это печально.

Перестает реагировать если свернуто? 

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

Перестает реагировать если долго свернуто...

У меня была такая проблема тоже. Думаю вариант только сохранять настройки и потом загружать их. У меня в свое время не получилось, но попробуй. Другого варианта даже не знаю.

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

это особенность ОС

программы выгружаются их памяти, если память нужна системе

поэтому возврат к месту выполнения лежит целиком на разработчике

система только вызовет OnSaveState при выгрузке

Изменено пользователем krapotkin
Ссылка на комментарий
  • 0

У меня такая ситуация - если приложение свернуто долго и я его запускаю повторно, то оно запускаеться по новой. Отсюда следует, что в какой то момент времени, приложение находясь в фоне перестало воспринимать события взаимодействия с прибором. Моя задача, чтобы находясь в фоне приложение продолжало работать с событиями  компонента TBeacon. Оно работает, но если долго в фоне то вдруг перестает. 

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

так и должно быть

это мобильная система

программа не имеет права работать, когда система спит

WiFi  и Bluetooth  тоже отключаются когда устройство засыпает

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

Попробуйте свернуть приложение (only Droid)

uses Androidapi.Helpers, Androidapi.JNI.GraphicsContentViewText;

procedure TForm_Main.AppMinimal;
{$IFDEF ANDROID}
var
  Intent: JIntent;
{$ENDIF}
begin
{$IFDEF ANDROID}
  Intent := TJIntent.Create;
  Intent.setAction(TJIntent.JavaClass.ACTION_MAIN);
  Intent.addCategory(TJIntent.JavaClass.CATEGORY_HOME);
  Intent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK);
  TAndroidHelper.Activity.startActivity(Intent);
{$ENDIF}
end;

 

Изменено пользователем zairkz
Ссылка на комментарий
  • 0

Спасибо, попробую на с++. Почему мне важно, чтобы приложение не перезапускалось: у компонета TBeacon есть события входа и выхода из зоны. Человек запускает приложение и сворачивает его, входит в зону - пишем в базу. Выходит из зоны - пишем а базу. Никаких других задач. Когда приложение долго свернуто оно перестает работать и смысл приложения полностью теряется. 

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

Скажите, кто нибудь пробовал использовать это: Managing the Activity Lifecycle

Может есть фрагменты кода на Дельфи как с помощью этого повысить жизненный цикл приложения которое было свернуто?

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

Kitty, единственный способ работы - это использование сервиса, а, как я понял, в C++Builder их нет. Поэтому я вижу выход только в том чтобы написать прожку на Дельфи. Перейти не так сложно, как думаете.

 

PS. По поводу перезапуска свернутого - у меня, например, в случае зависания программы (с сервисом) после рестарта она показывает только черный экран. Приходится заходить в Настройки -> Приложения -> искать свое приложение и делать Остановить. После этого запускается нормально. Собственно тоже не знаю как с этим бороться.

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

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

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

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

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

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

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

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

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

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

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