1
我正在使用IntentService執行後臺任務,例如從遠程服務器更新數據。Android IntentService - 防止同一請求的多個實例
在某些情況下,同一個請求可以被用戶多次排隊,但我只想執行一次(從服務器連續兩次更新數據沒有意義)。
有沒有一種簡單的方法來使用IntentService來完成此操作,還是應該使用標準的Service?
我正在使用IntentService執行後臺任務,例如從遠程服務器更新數據。Android IntentService - 防止同一請求的多個實例
在某些情況下,同一個請求可以被用戶多次排隊,但我只想執行一次(從服務器連續兩次更新數據沒有意義)。
有沒有一種簡單的方法來使用IntentService來完成此操作,還是應該使用標準的Service?
有一個簡單的辦法做到這一點使用IntentService
不幸的是,沒有。無論如何,IntentService
使用的Handler
隊列通過SDK不可見,並且沒有公開的方法可讓您檢查其內容。
我應該只使用標準服務嗎?
也許。您可以嘗試保留自己的工作隊列並行副本,在您的onHandleIntent()
中標記重複項並忽略它們,但要確保始終與真正的內部隊列同步,否則可能會變得糟糕。
IntentService的實現非常簡單 - 我只是實現我自己的。 – Ralf 2012-04-02 14:47:48