我需要爲android編寫一些服務,使用delphi XE5(firemonkey)。該服務需要在後臺運行並定期讀取短信收件箱,將其寫入sqllite數據庫(短信備份)。Delphi XE5中的Android後臺服務
我知道如何閱讀短信以及如何將其寫入數據庫,但我不知道如何使應用程序在後臺作爲服務工作。
任何想法?
問題:謝謝你的回答。 P.P.S .:抱歉我的英文不好。
我需要爲android編寫一些服務,使用delphi XE5(firemonkey)。該服務需要在後臺運行並定期讀取短信收件箱,將其寫入sqllite數據庫(短信備份)。Delphi XE5中的Android後臺服務
我知道如何閱讀短信以及如何將其寫入數據庫,但我不知道如何使應用程序在後臺作爲服務工作。
任何想法?
問題:謝謝你的回答。 P.P.S .:抱歉我的英文不好。
你不能單獨使用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
還有第三部分,包含更新版本的更新 - http://blog.blong.com/2015/02/delphi-and-android-services-part-3.html - 雖然當然Delphi 10西雅圖現在對Android服務有本地支持。 – blong
Android services是不一樣的Windows服務。如果您使用的是Android服務,它仍然會在您的應用程序的主線程中運行。當設備進入睡眠模式時,它們停止。而且,系統可以在低內存和其他可能的情況下終止服務。
從文檔:
通常情況下,開始服務執行單一的操作,不會 將結果返回給調用者。例如,它可能會下載或通過網絡上傳文件。操作完成後, 服務應該自行停止。
和
「如果該服務已啓動,並且是長時間運行,那麼系統將 降低其在後臺任務列表中的位置隨着時間的推移和 服務將變得非常容易查殺「
而不是服務,AlarmManager可能是一個更好的選擇。這是一個系統服務,它會在您告訴時執行操作,例如定期執行。
您選擇了錯誤的作業工具。這與本地開發工具完全一致。 –