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

Andrey Efimov

Модераторы
  • Постов

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

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

    123

Весь контент Andrey Efimov

  1. Есть вот такая темка Как свернуть форму, находящуюся в режиме FullScreen? А вообще, да, была недавно тема, но что-то не найду её... Вот ещё тема Форма не сворачивается при клике на иконке в панели задач. Напишите в личку автору, может он нашёл решение и поделится им с обществом. И вот такая тема Скрытие приложения с панели задач. Там ближе к концу обсуждали сворачивание.
  2. Так, ситуация такая. Приложение я отлаживал в Android Studio, не в RAD Studio, поэтому данную ошибку не встречал. Если хочется запускать с отладчиком RAD, то закомментируйте строчку Process._Release; Но, тогда будет происходить утечка памяти, которую можно будет увидеть в Android Studio и про которую я говорил в статье. Ошибка появляется только во время дебага через RAD Studio. Во время обычной работы приложения всё нормально. К сожалению, других решений для устранения утечки я не нашёл, а QC Embarcadero молчит... Более подробно, про утечку расскажу в след. статье. Исходники на гитхабе верные. p.s. Тему почистил. Спасибо, что сообщили об этом поведении. p.s.2. В статью добавил информацию по этому поводу.
  3. Например, вот так: Создаём фрейм FFrmSettings := TfrmSettings.Create(Self); FFrmSettings.Parent := Parent; Уничтожаем фрейм if FFrmSettings <> nil then begin FFrmSettings.Parent := nil; FFrmSettings.DisposeOf; FFrmSettings := nil; end;
  4. Ссылка: http://delphifmandroid.blogspot.ru/2017/03/blog-post.html Автор: Ефимов Андрей Описание:
  5. Вот сделал таблицу с событиями. Добавил в статью Очередь событий Delphi приложения на Android И получилось, что отслеживать сворачивание можно по: OnSaveState aeWillBecomeInactive EnteredBackground Разворачивание: WillBecomeForeground
  6. Не совсем, если отслеживать все возможные варианты сворачивания приложения (включая выход из приложения), то лучше использовать: TApplicationEvent.EnteredBackground Для отслеживания разворачивания приложения достаточно: TApplicationEvent.WillBecomeForeground aeBecameActive и aeWillBecomeInactive отрабатывают только в определённых случаях. p.s. Надо табличку оформить, чтобы было понятно, когда и для чего могут понадобится те или иные события.
  7. Очередь событий Delphi приложения на Android Жизненный цикл мобильного приложения
  8. Ну, не знаю как остальным, мне просто была интересна сама задача. И задачка интересная Только ещё не помешает мониторить перезагрузку телефона. А то пользователь перезагрузит устройство и всё, сломается его мониторинг (до момента пока он не перезапустит мониторинг)... Это если хочется почти нон-стоп и в автоматическом режиме. Да, точно. Видимо, я перепутал с другой задачей и другой реализацией, давно это было. (надо будет освежить знания по этой теме)
  9. Так устройство же спать ложится, смысл запускать сервис, когда он не нужен или есть причина? А вообще, я как-то заморачивался с похожей проблемой и вроде нашёл то ли флаг, то ли ещё что-то. Смысл был в том, чтобы будить устройство, но не включать дисплей. Кстати, HTC точно надо принудительно будить, у них ОСь так устроена.
  10. Евгений, внимательнее читайте статью, там есть раздел теории, а конкретно такие строчки: это половина ответа на ваш вопрос. Вторую половину можно найти например в этой статье [Android Service+BroadcastReceiver] Автозапуск службы после рестарта ОС. В ней говорится, какое имя будет у сервиса после создания:
  11. Посмотрите http://stackoverflow.com/questions/26052849/unexpected-error-while-parsing-input-invalid-uiautomator-hierarchy-file, может поможет. Вот это Run rm -rf $HOME/.android/monitor-workspace or remove the directory manually Хотя, лучше проверьте ещё диспетчер задач, т.к. я не очень понял фразу "12 версий 64-битных java "
  12. По поводу "как подключать JAVA класс": процитирую ответ в блоге: По поводу Цитата из ответа в блоге: Расчёт был на то, что читатель хотя бы поинтересуется в официальной справке, что делают два этих метода. К слову, по названию методов уже понятно, для чего каждый из них предназначен. Но раз есть один прецедент, то может быть и второй. Поэтому я уже добавил прямое указание различий у двух примеров. p.s. Не нужно заниматься кросспостингом. Update. Все три статьи обновлены. Конкретно в этой статье постарался объяснить в тексте поверхностные отличия двух примеров, которые мне, до сегодняшнего дня казались очевидными. Чуть позже выложу ещё всё на ГитХаб, чтобы не терялось
  13. Вот вам гадание на кофейной гуще (в след. раз, предоставьте логи): 1) Перепроверить Deployment, в идеале сбросить всё на Default (кнопка Revert to Default в Deployment) и попробовать запустить. Если запустится, то постепенно добавлять файлы в деплоймент, так выясните из-за какого файла косяк. (p.s. Очень-очень давно сталкивался с такой проблемой, косяк был в файле манифесте, который оказался повреждённым). В случае с манифестом, могли скобку где-то не закрыть или ещё что-то сделать. 2) Вместе с первым шагом делать Clean у проекта в Project Manager 3) На всякий случай, добавить параметр " -cleaninstall" в меню "Run -> Parameters:Parameters" 4) Проверить на других устройствах 5) Самый жёсткий вариант, очистить папку с файлами проекта от всех файлов, кроме .dpr; .fmx; .dproj; .pas. Открыть проект и перепроверить всё необходимое для проекта, попробовать запустить. Из студии, apk заливается через ADB. ADB сильно расширяет все возможности по управлению устройством, например установка приложения без проверки разрешений в манифесте или копирование файла из закрытой директории и т.д.
  14. Спасибо, приятно слышать :). А конечный файл нормальный получается? по размерам и по работоспособности? По размерам должен получиться на несколько КБ больше, чем основной classes.dex приложения. Ага, поэтому, я в каждой статье связанной с classes.dex пишу об этом
  15. Пересчёт? Ну так и делайте его там, где вам это необходимо. Мне не очень понятна задача... Если спроектировать интерфейс на TLayout'ах, то компоненты на панели, будут сами изменять размер, положение в зависимости от размера родителя (TPanel или другого компонента или TFrame и т.п.). Если вы об этом конечно... Mobile Tutorial: Using Layout to Adjust Different Form Sizes or Orientations (iOS and Android) FireMonkey Layouts Strategies Tutorial: Using FireMonkey Layouts
  16. Получится один classes.dex. Такой задачи у меня ещё не было, поэтому только теория: Варианты: 1) Пишем два класса, наследника от BroadcastReceiver. Прописываем в манифесте, один будет реагировать на перезагрузку, другой на время. По очереди, клеим к основному файлу classes.dex от приложения. Т.е. приклеили 1 раз, у нас получился 1 classes.dex, далее клеим к нему след. класс. 2) Пишем один класс, который будет отрабатывать за два. Суть в том, чтобы отслеживать Action внутри OnReceive. Клеим его, а вот генерация интента уже будет отличаться. Это в теории .
  17. А вот ещё, проверьте, файл classes.dex от приложения вы сгенерили? А то он у вас пишет, что не может найти его... Да, там с версиями косяк какой-то, уже далеко не первый раз пишут мне с такой проблемой, но пока всем помогало добавление строки "-source 1.7 -target 1.7". Причём ошибки у всех разные, но эта магическая строчка спасает
  18. Это обычный варнинг, не обращайте на него внимания. Ошибка исчезла? Файлы сгенерились?
  19. 1) Откройте bat файл 2) найдите строку, которая начинается на "javac" (примерно 19) если файл из статьи, то выглядит вот так: javac %VERBOSE_FLAG% -Xlint:deprecation и т.д. замените на javac -source 1.7 -target 1.7 %VERBOSE_FLAG% -Xlint:deprecation Если не получится, то замените цифры на 1.6. (т.е. вам надо добавить -source 1.7 -target 1.7 сразу после javac) 3) Отпишитесь о результате.
  20. Прикладывайте к таким сообщениям скрины. Планшеты есть не у всех. Можно попробовать покрасить форму в чёрный цвет, на форму кинуть, например, TPanel (или TRectangle) с необходимыми размерами, выравниванием по центру и уже в него вставлять все остальные компоненты.
  21. В далёком 2013 переводил эту заметку, читать тут: Создание выпадающего меню в приложении на Android
  22. Посмотрите пример по вашей задаче: C:\Users\Public\Documents\Embarcadero\Studio\18.0\Samples\Object Pascal\Multi-Device Samples\User Interface\Forms
×
×
  • Создать...