Android фоновый сервис в Delphi XE5
Мне нужно написать какой-то сервис для android, используя Делфи XE5 (компонентов FireMonkey). Эту услугу нужно запускать в backgroung и периодически читать SMS inbox, записывая ее в SQLLITE DB (SMS backup).
Я умею читать SMS и как писать его в БД, но я понятия не имею, как заставить приложение работать в фоновом режиме в качестве службы.
какие идеи?
С. П.: Спасибо за ваши ответы. P. P. S.: Извините за мой плохой английский.
2 ответов
вы не можете сделать это только с XE5, но вы можете сделать это с небольшой помощью Java.
Брайан Лонг опубликовал две части на эту тему:
http://blog.blong.com/2013/11/delphi-and-android-services.html
http://blog.blong.com/2013/11/delphi-and-android-services-part-2.html
услуги Android не то же самое, что службы Windows. Если вы используете службу Android, он по-прежнему работает в главном потоке приложения. Они останавливаются, когда устройство переходит в спящий режим. Кроме того, система может прекратить службу в условиях нехватки памяти и, возможно, в других ситуациях.
из документации:
обычно, началась служба выполняет одну операцию и не возвращает результат вызывающему объекту. Например, он может загрузить или загрузите файл по сети. Когда операция будет выполнена, сервис должен остановиться сам.
и
" Если служба была запущена и работает долго, то система будет понизьте свое положение в списке фоновых задач над временем и служба станет очень восприимчивой к убийствам"--3-->
вместо служб, AlarmManager может быть лучшим выбором. Это системная служба, которая будет выполнять действия, когда вы будете рассказывать, например периодически.