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

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

Пользователи
  • Постов

    144
  • Зарегистрирован

  • Посещение

  • Победитель дней

    9

Весь контент Сергей Сергеев

  1. Добрый день! Использую для коннекта с сервером Datasnap TsqlConnection. Т.к. мобильная связь не всегда устойчива, иногда возникают паузы.. при этом кнопка "Войти" остается в нажатом состоянии.. ( по ней делается sqlconn.open ) интерфейс блокируется и нажать какой нибудь 'cancel' не получается. Думаю это потому, что Android выполняет соединение в основном потоке.. и пока не вернется из недр connect ( по тайм ауту к примеру) не реагирует на тапы и клики. Выход видится как открытие в соединения в потоке.. но не очень понятно , как им потом управлять, ведь мне нужно держать соединение постоянно открытым, для дальнейшего обмена данными в сессии.. Кто делал нечто подобное, жду мудрых советов .. заранее спасибо..
  2. Ура! Проблема решилась.. т.е. стало работать не рестартуя после свертывания и т.д. все дело в "галочке" Это я поставил эту отметку в новом телефоне, после включения режима разработчика.. очень мне не понравились слова про сохранения моих действий и все "простые" приложения, не сохраняющие свое состояние , после рестарта оказывались в начальном положении. Отключил.. и все стало работать, приложение живет, благо памяти хватает, на сеанс просмотра инфы - 10-15 мин явно хватит и при запуске вьеверов и мейла.. ну уж если вытеснит его из памяти, значит пользователь чем то таким уж занялся посторонним, что после этого и перелогиниться, думаю, его не удивит..
  3. есть такой путь.. я его описал чуть выше : Придется по новой заполнять всю начальную инфу на сервере ( например там есть список файлов клиента), который получается сканированием определенных директорий, при каждом коннекте , раньше я с клиента просто говорил - дай файл №5 .. в сессии по MemTable искал№5 - брал его путь и отсылал клиенту.. понятно, что все решаемо.. всякими бубнами.. но весь этот стройный и удобный механизм ДатаСнап летит.. используется только для начального заполнения.. к чему эти все циклы статей и видео - как прекрасно на дельфи используя датаснап делать приложения для Анроида, если клиент прибивается, только ты решил отправить СМС? и сесииян на сервере захлопнулась.. со всеми вытекающими..
  4. Ну так датаснап и есть третье звено между клиентом и сервером, в нем и держится вся инфо, то там механизм сессий - по конекту.. сбрасывается при обрыве... а запрос - ответ - требует же нового коннекта каждый раз.. требование - при кадждом подключении - подтверждение пин кодом..
  5. Ну т.е. сервис подкачивает инфу в локал. базу.. а клиент просто из нее смотрит? без всяких логинов ? и вопрос - при прибивании Андроидом приложения OnSaveState - не вызывается вроде.. а как же сохранить состояние Листов и прочего..
  6. ну тогда вся прелесть DataSnap ( отображение Датасетов в сессии сервера на клиенте ) пропадает.. Архитектура Клиент-Сервер.. на сервере ISAPI модуль DateSnap - открывает ДатаСеты, заполняет MemTable На Андроид Клиенте - Коннект на сервер с логин - паролем - пин код ( по смс) авторизацией . На сервере запускается сессия, она живет пока есть коннект с клиента. Заполняются ClientDataSet из Серверных Датасетов . На клиенте это все в списки отображается ... клиент тыкает в элементы списка и с сервера приходит датализированное описание.. Это все работает.. но есть просмотр файлов получаемых с сервера ( html,pdf, jpg ) - сделано сохранением в доунлоад и открытием внешней программой по миме типу ( т.е. андроид предлагает выбрать из списка установленных..) а ткже есть отсылка емайла ( тоже запуск клиента мейла по умолчанию) т.е. происходит переключение задач. Так вот на устройствах с 2 Гб ОП - после возврата из внешних программ - коннект на месте ( соответственно и сессия на сервере держится) что позволяет смотреть другой файл и т.д. а на устр с 1 Гб - клиент прибивается сразу, достаточно свернуть его просто кнопкой - Домой, не говоря уже о запуске другого приложения ( просмотр ПДФ и т.д.), что приводит к закрыти. сессии не сервере, необходимости повторного логина.. Понятно, что можно делать Бэкдор - облегченный логин, для тех кто Оторвался не по своей воле, тикеты там на время.. и прочее... возможно придется делать так.. но это потенциальная дырка.. если другого не найдем решение - как вариант.. также выяснено, что захлопывается любое приложение Дельфи - даже из самплов - практически пустая форма, хотя памяти свбодной около 600 мб, приложение 16 мб.. вот такая проблема..
  7. Нет.. так не пойдет.. хранилище на MS SQL через ISAPI DataSnap пользователи получают доступ по логину паролю, на сервере DataSnap держит сессию послt идентификации.. зачем SQLlite? все время подкачивать туда данные? ну вообще это мед. информация.. хранить на клиенте в недрах андроида - нельзя
  8. LargeHeap не помогает, Lifecicle Restart ит после нажатия кнопки home.. Сервис - приделал к Lifecicle сервис как на видео , теперь все равно рестатрит основная форма - но в списке работающих приложений ( в настройках) - вижу его после нажатия домой .. могу ли я в сервис положить свой DataModuel в котором есть sqlconnection на сервер, который собственно и держит сессию на нем, несколько TclientDataSet, MemTable и TDSPProviderConnection , и как это связывать с TListView, TEdit на форме, котороя получается "перерождается" постоянно..
  9. Добавлю, само приложение LifeCicle рестартися постоянно на аппарате с 1Гб, после переключения, на аппарате с 2 Гб ведет лог со вчерашнего вечера! я и вк и ок и в браузере полазил.. забыв про него, а сейчас нашел в истории запуска - а оно живо и лог ведет со вчера событий своих.. так что тут не минутами пахнет..
  10. Согласен.. у меня приложение - просмотр файлов с сервера по запросу, отправка по мейлу.. пользователь авторизуется, двухфакторно с получением пин кода по смс, серверная часть - модуль ISAPI передающий данные по DataSnap при логине, пока держится коннект от клиента к серверу - на сервере рождается сессия, и в ней все данные ( список файлов пользователя, перс инфо и прочее..) на тел. с 2 гб ОП все работает прекрасно, файлы смотрятся ( запускаю просмотр по миме типу файла внешней программой), мейл отправляется мейл клиентом по умолчанию с приаттаченным файлом.. т.е. происходит постоянно переключение между программами... так вот.. на тел ч 2 ГБ я пишу и тестирую более 3 мес.. и ни разу не видел рестарта, сессии держаться пока пользователю не надоест смотреть файлы.. рестарта не наблюдал ни разу.. на тел. с 1 гб - достаточно просто свернуть клиента, что бы получить рестарт по полной.. приходит на ум, что нужно делать клиента из двух частей - некий сервис, который система не может закрыть, когда ей вздумается, и который и будет держать коннект к серверу и соответственно сессию на нем, и форму отображающую данные, УИ и которая пусть закрывается с восстановлением данных из сервиса.. ( если нет более простых решений) возможно ли это сделать на дельфи? гдето попадалось что сервисы на ней делаются.. насколько потом такое приложение портируется на ИОС? пс.честно говоря в тупике.. положив 4 месяца на разработку и такой вот сюрприз ..
  11. Спасибо за наводку.. Значит так .. на А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Гб.. т.е. появляется состояние Бэкгроунд и восстановление а не рестарт.. хм...
  12. c 2 Гб не закрывается тоже, 1 гб свободен.. а вот если 1 гб всего - закрывается на обоих смартфонах с А5.1 и А6.0 ( свободно 300 мб), причем пустые приложения практически - форма и картинка на ней из примеров Дельфи, оптимизировать вроде там нечего.. почитал тут про Активити, SaveState.. посадил на события Form OnClose, OnDeactivate, onSaveState - вывод сообщения с задержкой на 5 сек.. ни одно из этих событий не возникает, при сворачивании приложения - например нажатием на кнопку телефона "Рабочий стол", приложения нет в списке настройки - работающие приложения.. т.е получается его прибили и не возникло ни одного события формы из перечисленных.. так что и сохранить состояние не получится похоже.. кстати прочитал, что при смене ориентации экрана также происходит автосейв состояния и рестарт с восстановлением приложения.. так вот при повороте ничего не грохается.. все введеные данные в тедит сохранятся.. события никакие не вызываются.. странно как то это все..
  13. Хорошо, сформулирую по другому. На телефонах с 2гб оп не закрывается, приложения скомпиленные андроид студией тоже не закрываются даже на телефонах с 1 гб оп. Почему дельфовые приложения закрываются? Можно предполржить, что компилится так "глупо", возможно флажок какой в манифесте не ставит. Варианты решения какие есть? Сервис, запоминание состояния с постоянным реконнектом.. ?
  14. т.е. проблема выродилась в то, как запретить Андроиду закрывать приложение при "свертывании".. ( у меня рвется коннект с датаснап сервером.. со всеми вытекающими последствиями)
  15. после перезагрузки устройства запускаю только одно приложение из Sample Delphi - Forms ( см. вложение ) там ничего нет - смена картинки после смены ориентации устройства на 4, 5 - сворачивается - разворачивается на 6 0 рестарт после сворачивания - разворачивание у кого то запускается на 6м любое дельфовое приложение без рестарта после сворачивания? думаю проблема в дельфи.. что то указывает рестартить после сворачивания.. ( причем только для 6го андрюши..) пс . прочитал ветку свернуть приложение добавил в приложение кнопку - с он клик : - рестартится при возврате к нему.. Да дело похоже в памяти, дельфовые приложения не рестартятся на устройствах с 2Гб ОП, взял на пробу 1Гб с 5м андроидом, пошел такой же рестарт как и в 6м андроиде, т.е причина похоже в обьеме ОП. и как я понял выход делать сервис + форма, но дельфи этого не может.. и получается если приложение требует начального -логина-пароля ( а у меня еще и пин кода по смс) ..и в нем просмотр файлов прилетающих с инета организован через внешние приложения.. то основная форма захлопывается.. при "сворачивании" и требуется повторный логин-пароль-пинкод- получение начальных данных, даже если это в фоне делать, определившись что это в возврат в "уснувшие приложение" ( на серевере - новая сессия) - занимает время..
  16. вроде 1 Гб ОП, свободных около 300 мб для запуска, т.е. для 6 андр любое приложение на дельфи будет рестартиться постоянно? я запускаю просмотр файлов в своем приложении и отправку емайла - внешними програмами по умолчанию, и после каждого перехода в браузер - заново логинится надо? я даже не перехожу в другие приложения - просто свернул - развернул и - рестарт..
  17. Добрый всем день! Купил по акции в Билайн смартфон с Android 6.0 Senseit A 109. Какой пример из Sample ни запущу на нем, в том числе и свое приложение, после перехода на другое приложение ( к примеру в браузер ) , после возврата - перезапускается заново. на других телефонах на Android 4.. и 5.. все нормально.. Использую Seattle ( грешил что не поддерживает андроид 6), вчера поставил Berlin - тоже самое, сегодня обновил SDK и NDK до последних - тоже самое.. не работают ( закрываются - вернее рестартит ) даже примеры.. Кто наблюдает такое же в 6ом Андроиде? или это телефон такой "неправильный" .. в какую сторону копать?
×
×
  • Создать...