2013-12-09 86 views
6

我需要爲android編寫一些服務,使用delphi XE5(firemonkey)。該服務需要在後臺運行並定期讀取短信收件箱,將其寫入sqllite數據庫(短信備份)。Delphi XE5中的Android後臺服務

我知道如何閱讀短信以及如何將其寫入數據庫,但我不知道如何使應用程序在後臺作爲服務工作。

任何想法?

問題:謝謝你的回答。 P.P.S .:抱歉我的英文不好。

+1

您選擇了錯誤的作業工具。這與本地開發工具完全一致。 –

回答

4

你不能單獨使用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

+0

還有第三部分,包含更新版本的更新 - http://blog.blong.com/2015/02/delphi-and-android-services-part-3.html - 雖然當然Delphi 10西雅圖現在對Android服務有本地支持。 – blong

0

Android services是不一樣的Windows服務。如果您使用的是Android服務,它仍然會在您的應用程序的主線程中運行。當設備進入睡眠模式時,它們停止。而且,系統可以在低內存和其他可能的情況下終止服務。

從文檔:

通常情況下,開始服務執行單一的操作,不會 將結果返回給調用者。例如,它可能會下載或通過網絡上傳文件。操作完成後, 服務應該自行停止。

「如果該服務已啓動,並且是長時間運行,那麼系統將 降低其在後臺任務列表中的位置隨着時間的推移和 服務將變得非常容易查殺「

而不是服務,AlarmManager可能是一個更好的選擇。這是一個系統服務,它會在您告訴時執行操作,例如定期執行。