我需要使用 delphi XE5(firemonkey)为android编写一些服务。该服务需要在backgroung中运行并定期读取短信收件箱,将其写入sqllite DB(短信备份)。
我知道如何阅读短信以及如何将其写入数据库,但我不知道如何让应用在后台作为服务工作。
有什么想法吗?
P.S。:谢谢你的回答。 P.P.S。:抱歉我的英语不好。
答案 0 :(得分:4)
你不能单独使用XE5,但你可以在Java的帮助下完成。
Brian Long发表了关于这个主题的两个部分:http://blog.blong.com/2013/11/delphi-and-android-services.html
http://blog.blong.com/2013/11/delphi-and-android-services-part-2.html
答案 1 :(得分:0)
Android services与Windows服务不同。如果您使用Android服务,它仍会在您的应用程序的主要线程中运行。它们在设备进入睡眠模式时停止。此外,系统可以在低内存和其他情况下终止服务。
来自文档:
通常,已启动的服务执行单个操作但不执行 将结果返回给调用者。例如,它可能下载或 通过网络上传文件。当操作完成后, 服务应该停止。
和
"如果服务已启动且长时间运行,则系统将执行 随着时间的推移降低其在后台任务列表中的位置 服务将极易被杀害"
AlarmManager可能是更好的选择,而不是服务。这是一个系统服务,它将在您定期执行操作时执行操作。