查看股票日曆應用程序的源代碼,Google使用IntentService爲數據庫執行內容提供者操作。使用IntentService而不是AsyncQueryHandler有優勢嗎?AsyncQueryHandler vs IntentService?
我認爲,因爲一個處理程序綁定到用戶界面,如果活動被暫停或停止,處理程序也將得到暫停。然而,這似乎並非如此:我創建了一個簡單的內容提供程序和AsyncQueryHandler,它們除了運行一個long for循環之外什麼都不做。當我啓動其他應用程序或終止活動時,for循環仍會運行。
因此,使用IntentService進行異步CRUD操作的優點是服務(作爲服務)有更少的機會被殺死?
更新:我的困惑的一部分是處理程序如何與活動的生命週期相關聯。從我的實驗來看,它似乎是獨立的。
此外,對於那些不熟悉股票日曆應用程序源代碼的人來說,它的工作方式是執行CRUD,它將操作添加到隊列以及對處理程序的引用。然後它啓動彈出隊列並執行CRUD的intent服務。完成後,它通過Message.sendToTarget()調用處理程序。
那麼額外的複雜性會給我們帶來什麼呢?