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 может быть лучшим выбором. Это системная служба, которая будет выполнять действия, когда вы будете рассказывать, например периодически.