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

Проблема в Android 6.0


Сергей Сергеев

Вопрос

Добрый всем день!

Купил по акции в Билайн смартфон с Android 6.0 Senseit A 109. 

Какой пример из Sample ни запущу на нем, в том числе и свое приложение, после перехода на другое приложение ( к примеру в браузер ) , после возврата - перезапускается заново.

на других телефонах на Android 4.. и 5.. все нормально..

Использую Seattle ( грешил что не поддерживает андроид 6), вчера поставил Berlin - тоже самое, сегодня обновил SDK и NDK до последних - тоже самое.. не работают ( закрываются - вернее рестартит ) даже примеры..

Кто наблюдает такое же в 6ом Андроиде? или это телефон такой "неправильный" .. в какую сторону копать?

 

 

 

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

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

  • 0
  • Модераторы
1 минуту назад, Сергей Сергеев сказал:

Добрый всем день!

Купил по акции в Билайн смартфон с Android 6.0 Senseit A 109. 

Какой пример из Sample ни запущу на нем, в том числе и свое приложение, после перехода на другое приложение ( к примеру в браузер ) , после возврата - перезапускается заново.

на других телефонах на Android 4.. и 5.. все нормально..

Использую Seattle ( грешил что не поддерживает андроид 6), вчера поставил Berlin - тоже самое, сегодня обновил SDK и NDK до последних - тоже самое.. не работают ( закрываются ) даже примеры..

Кто наблюдает такое же в 6ом Андроиде? или это телефон такой "неправильный" .. в какую сторону копать?

это поведение самого андроида, если не достаточно памяти он выгружает приложение

Ссылка на комментарий
  • 0
22 минуты назад, ZuBy сказал:

это поведение самого андроида, если не достаточно памяти он выгружает приложение

вроде 1 Гб ОП, свободных около 300 мб для запуска, т.е. для 6 андр любое приложение на дельфи будет рестартиться постоянно? 

я запускаю просмотр файлов в своем приложении и отправку емайла - внешними програмами по умолчанию, и после каждого перехода в браузер - заново логинится надо?

я даже не перехожу в другие приложения - просто свернул - развернул и - рестарт.. 

Ссылка на комментарий
  • 0
  • Модераторы
Только что, Сергей Сергеев сказал:

вроде 1 Гб ОП, свободных около 300 мб для запуска, т.е. для 6 андр любое приложение на дельфи будет рестартиться постоянно? 

я запускаю просмотр файлов в своем приложении и отправку емайла - внешними програмами по умолчанию, и после каждого перехода в браузер - заново логинится надо?

я даже не перехожу в другие приложения - просто свернул - развернул и - рестарт.. 

ну видимо 1 гб не хватает для системы, попробуйте перед запуском выгружать все запущенные приложения

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

Может быть из-за того, что в настройках стоит ограничение на количество "фоновых" программ. Т.е. посмотрите в настройках (возможно настройки для Разработчика), либо - в настройках приложений "разрешить работу приложения в фоновом режиме" (или типа того - у всех по разному)

З.Ы. И не верьте всему - что показывает оболочка по поводу того - сколько "свободного ОЗУ" ))

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

после перезагрузки устройства запускаю только одно приложение из Sample Delphi - Forms  ( см. вложение )

там ничего нет - смена картинки после смены ориентации устройства

на 4, 5 - сворачивается - разворачивается

на 6 0 рестарт после сворачивания - разворачивание

у кого то запускается на 6м любое дельфовое приложение без рестарта после сворачивания?

думаю проблема в дельфи.. что то указывает рестартить после сворачивания.. ( причем только для 6го андрюши..) 

 

пс . прочитал ветку свернуть приложение 

добавил в приложение кнопку - с он клик : 

Цитата

TAndroidHelper.Activity.moveTaskToBack(true); отправляет приложение в фон, где оно продолжает работать. и при повторном открытие открывается программа так как будто она и не закрывалась.

 

- рестартится при возврате к нему..  

Да дело похоже в памяти, дельфовые приложения не рестартятся на устройствах с 2Гб ОП, взял на пробу 1Гб с 5м андроидом, пошел такой же рестарт как и в 6м андроиде, т.е причина похоже в обьеме ОП. 

и как я понял выход делать сервис + форма, но дельфи этого не может.. и получается если приложение требует начального -логина-пароля ( а у меня еще и пин кода по смс) ..и в нем просмотр файлов прилетающих с инета организован через внешние приложения.. то основная форма захлопывается.. при "сворачивании" и требуется повторный логин-пароль-пинкод- получение начальных данных, даже если это в фоне делать, определившись что это  в возврат в "уснувшие приложение" ( на серевере - новая сессия) -  занимает время..

 

App Delphi.jpg

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

т.е. проблема выродилась в то, как запретить Андроиду закрывать приложение при "свертывании"..  ( у меня рвется коннект с датаснап сервером.. со всеми вытекающими последствиями)

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

т.е. проблема выродилась в то, как запретить Андроиду закрывать приложение при "свертывании"..  ( у меня рвется коннект с датаснап сервером.. со всеми вытекающими последствиями)

Юмору наших форумчан нет предела. Ответ НИКАК. На этом форуме тысячу раз объясняли, что мобильные платформы на то и МОБИЛЬНЫЕ. Они сами регулируют запущенные процессы. Или ваша батарейка будет таять на глазах из за ваших же приложений. Это вам не десктоп, где операционной системе "по барабану", сколько запущено процессов.

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

Хорошо, сформулирую по другому. На телефонах с 2гб оп не закрывается, приложения скомпиленные андроид студией тоже не закрываются даже на телефонах с 1 гб оп. Почему дельфовые приложения закрываются? Можно предполржить, что компилится так "глупо", возможно флажок какой в манифесте не ставит. Варианты решения какие есть? Сервис, запоминание состояния с постоянным реконнектом.. ? 

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

Может быть попробовать оптимизировать потребление RAM приложением? Тогда увеличится вероятность  остаться в памяти при сворачивании.

К слову на устройстве под управлением Android 6.0 c 3 ГБ памяти ничего не закрывается. Но при небольшом количестве открытых приложений (камера, мессаджеры и прочие стандартные программы), объем свободной памяти уменьшается до 1 ГБ. 

Ссылка на комментарий
  • 0
45 минут назад, Alex7wrt сказал:

Может быть попробовать оптимизировать потребление RAM приложением? Тогда увеличится вероятность  остаться в памяти при сворачивании.

К слову на устройстве под управлением Android 6.0 c 3 ГБ памяти ничего не закрывается. Но при небольшом количестве открытых приложений (камера, мессаджеры и прочие стандартные программы), объем свободной памяти уменьшается до 1 ГБ. 

c 2 Гб не закрывается тоже, 1 гб свободен.. а вот если 1 гб всего - закрывается на обоих смартфонах с А5.1 и А6.0 ( свободно 300 мб), причем пустые приложения практически - форма и картинка на ней из примеров Дельфи, оптимизировать вроде там нечего..

почитал тут про Активити, SaveState.. посадил на  события Form OnClose, OnDeactivate, onSaveState - вывод сообщения с задержкой на 5 сек.. ни одно из этих событий не возникает, при сворачивании приложения - например нажатием на кнопку телефона "Рабочий стол", приложения нет в списке настройки - работающие приложения.. т.е получается его прибили и не возникло ни одного события формы из перечисленных.. так что и сохранить состояние не получится похоже..

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

Ссылка на комментарий
  • 0
35 минут назад, Alex7wrt сказал:

Можно попробовать события жизненного цикла формы
http://delphifmandroid.blogspot.com/2013/10/blog-post.html

Спасибо за наводку..

Значит так .. на А6 с 1Гб                          На А4.4.2 с 2 Гб

Запуск

Finished Launching                                 Finished Launching  

Became Active                                        Became Active

нажата кнопка Рабочий Стол

                                                               Entered Background

Will Become Inactive                              Will Become Inactive

 

Тап на списке запусков

(рестарт)                                               

Finished Launching                             Will Become Foreground

Became Active                                    Became Active

 

т.е. когда памяти много в состояние БэкГроунд отправляется.. а на 1Гб - нет..

еще заметил если на смартфоне с 1 гб, не нажимать ничего, подождать пока заснет..

то цикл сообщений такой же становится как и на 2Гб.. т.е. появляется состояние Бэкгроунд и восстановление а не рестарт..

хм...

 

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

Что то мне все равно подсказывает, что любые приложения на андрюше иои iOs, со временем все равно убиваются))). И это от вас не зависит. Ну повесят они минуту, другую....

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

установите из маркета AppStatusWatcher, оно показывает потребление памяти приложением.

Изменено пользователем ZuBy
Ссылка на комментарий
  • 0
3 часа назад, ZuBy сказал:

установите из маркета AppStatusWatcher, оно показывает потребление памяти приложением.

Попробовал установить эту программу - в Running Apps он видит только себя. Как заставить увидеть другие программы?

Ссылка на комментарий
  • 0
  • Модераторы
12 минут назад, Rusland сказал:

Попробовал установить эту программу - в Running Apps он видит только себя. Как заставить увидеть другие программы?

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

Ссылка на комментарий
  • 0
  • Модераторы
Только что, Rusland сказал:

Наверное на рутованных аппаратах работает.

у меня рут, она работала на андроид ниже 5.0. дальше автор не обновлял видимо

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

Что то мне все равно подсказывает, что любые приложения на андрюше иои iOs, со временем все равно убиваются))). И это от вас не зависит. Ну повесят они минуту, другую....

Согласен.. 

у меня приложение - просмотр файлов с сервера по запросу, отправка по мейлу..

пользователь авторизуется, двухфакторно с получением пин кода по смс,

серверная часть - модуль ISAPI передающий данные по DataSnap

при логине, пока держится коннект от клиента к серверу - на сервере рождается сессия, и в ней все данные ( список файлов пользователя, перс инфо и прочее..)

на тел. с 2 гб ОП все работает прекрасно, файлы смотрятся ( запускаю просмотр по миме типу файла внешней программой), мейл отправляется мейл клиентом по умолчанию с приаттаченным файлом..

т.е. происходит постоянно переключение между программами...

так вот.. на тел ч 2 ГБ я пишу и тестирую более 3 мес.. и ни разу не видел рестарта, сессии держаться пока пользователю не надоест смотреть файлы.. рестарта не наблюдал ни разу..

на тел. с 1 гб - достаточно просто свернуть клиента, что бы получить рестарт по полной..

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

соответственно сессию на нем, и форму отображающую данные, УИ и которая пусть закрывается с восстановлением данных из сервиса.. ( если нет более простых решений)

возможно ли это сделать на дельфи? гдето попадалось что сервисы на ней делаются.. насколько потом такое приложение портируется на ИОС?

пс.честно говоря в тупике.. положив 4 месяца на разработку и такой вот сюрприз ..

 

 

 

 

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

попробуй Project->Options->Version Info->persistent = True

и будет тебе счастье :)

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

Коллеги, простите за мою назойливость, но не применяйте свои десктопные знания в мобильных разработках! Это совершенно разные задачи! ИМХО постоянный коннект в мобилах - это зло!

Изменено пользователем Vitaldj
Ссылка на комментарий
  • 0
25 минут назад, Сергей Сергеев сказал:

возможно ли это сделать на дельфи? гдето попадалось что сервисы на ней делаются.. насколько потом такое приложение портируется на ИОС?

Да, есть сервисы. Стоит изучить темы тут

Android сервисы никак не портировать на iOS

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

Добавлю, само приложение LifeCicle рестартися постоянно на аппарате с 1Гб, после переключения, на аппарате с 2 Гб ведет лог со вчерашнего вечера! я и вк и ок и в браузере полазил.. забыв про него, а сейчас нашел в истории запуска - а оно живо и лог ведет со вчера событий своих.. так что тут не минутами пахнет.. 

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

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

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

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

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

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

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

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

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

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

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