• 0
Heinrich

Как выгрузить приложение

Вопросы

Здравствуйте.

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

MainActivity.finish; не помогает. Приложение не выгружается.  Halt(0) сворачивает приложение несколько по иному, но оно всё равно остаётся в процессах висеть. При чём, когда его вызываешь, происходит его перезапуск. Очищаются се данные. которым оно обладало после работы. Так же не понятно, как убрать при старте временно появляющиеся изображение этого самого огонька (факела). Я указал свои изображения во всех разрешениях (Launcher Icon)  и (Splash Image)  в виде PNG необходимого разрешения и эти изображения легли в финальный APK, как и положено, и в программах моя программа имеет правильную и конку, но при старте проскакивает этот факел и потом приложение запускается. Отключение галки Include Splash Image ничего не меняет. Работаю в RAD XE8 Delphi. Проверяю на адндроид устройстве с версией ОС 7.

Кто со всем этим сталкивался и как поборол?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 ответов на этот вопрос

  • 0

Вам бы обновиться на RIO... :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
27 минут назад, Heinrich сказал:

Halt(0) сворачивает приложение несколько по иному, но оно всё равно остаётся в процессах висеть.

Хм, вы меня удивили, если честно.
Попробовал на телефоне несколько популярных приложений, и они все после полного закрытия остаются в "списке задач/процессах".
Да, они перезапускаются если их вызвать еще раз.

Я конечно не эксперт, но боюсь что то что вы хотите это слишком нестандартное поведение, и врядли в дельфи это реализовано.
Если не секрет, для каких целей вам нужно настолько хитрое поведение?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
3 часа назад, Heinrich сказал:

Здравствуйте.

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

MainActivity.finish; не помогает. Приложение не выгружается.  Halt(0) сворачивает приложение несколько по иному, но оно всё равно остаётся в процессах висеть. При чём, когда его вызываешь, происходит его перезапуск. Очищаются се данные. которым оно обладало после работы. Так же не понятно, как убрать при старте временно появляющиеся изображение этого самого огонька (факела). Я указал свои изображения во всех разрешениях (Launcher Icon)  и (Splash Image)  в виде PNG необходимого разрешения и эти изображения легли в финальный APK, как и положено, и в программах моя программа имеет правильную и конку, но при старте проскакивает этот факел и потом приложение запускается. Отключение галки Include Splash Image ничего не меняет. Работаю в RAD XE8 Delphi. Проверяю на адндроид устройстве с версией ОС 7.

Кто со всем этим сталкивался и как поборол?

 

Первым делом, конечно, обновиться.

Люди пишут что https://developer.android.com/reference/android/app/Activity.html#finishAndRemoveTask()

Но сам не проверял (может завтра), ну и флаг для активити в манифесте 

android:autoRemoveFromRecents="true"/>

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

procedure TfmMain.DoAppExit;
begin
  try
    Toast('Shutdown...');

    TThread.Synchronize(nil, Do__________);  // тут что-то делаем до завершения
  finally
    KillMe; // из Android.KillMainProcess
  end;
end;

android.KillMainProcess.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
В 14.03.2019 в 15:23, #WAMACO сказал:

Вам бы обновиться на RIO... :)

Думаете, это всё баги и глюки 8-й версии?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
В 14.03.2019 в 15:45, Barbanel сказал:

Хм, вы меня удивили, если честно.
Попробовал на телефоне несколько популярных приложений, и они все после полного закрытия остаются в "списке задач/процессах".
Да, они перезапускаются если их вызвать еще раз.

Я конечно не эксперт, но боюсь что то что вы хотите это слишком нестандартное поведение, и врядли в дельфи это реализовано.
Если не секрет, для каких целей вам нужно настолько хитрое поведение?

Это очень странно как раз. Если вы выгрузили приложение, то почему оно висит в процессах и жрёт тем самым ресурсы? Закрыть приложение - да это более чем стандартное поведение для пользователя той или иной программы. Delphi использует Android NDK, стало быть в нём нет таких возможностей?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
15 минут назад, Heinrich сказал:

Думаете, это всё баги и глюки 8-й версии?

Это особенность операционной системы,  обновление ничего не даст.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
41 минуту назад, IS1 сказал:

Это особенность операционной системы,  обновление ничего не даст.

Да, это жесть, конечно. А, как быть со втормы моим вопросом - со Splash? Откуда он берётся всё время при старте?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
8 минут назад, Heinrich сказал:

Да, это жесть, конечно. А, как быть со втормы моим вопросом - со Splash? Откуда он берётся всё время при старте?

скорее всего вы указали свои изображения только для одного режима (Debug/Release) а компилируйте в другом. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
6 часов назад, Heinrich сказал:

Это очень странно как раз. Если вы выгрузили приложение, то почему оно висит в процессах и жрёт тем самым ресурсы? Закрыть приложение - да это более чем стандартное поведение для пользователя той или иной программы. Delphi использует Android NDK, стало быть в нём нет таких возможностей?

Ну это вопросы к разработчикам системы, почему они решили что то, что пользователь закрыл, должно из памяти выгружаться системой (да, оно висит в recent, но на деле может быть выгружено - это вы видите, когда запускаете снова от туда, и все данные и состояние теряется.) JNI тут не причем. 

Почитайте первоисточник (доки по андроиду от гугла, про жц активити. Оно одно, обычно, для всего приложения на делфи)

Ну и попробуйте "закрыть" тот же навигатор гугла. Что будет? - поделитесь результатом

Изменено пользователем mazayhin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

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

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