2012-04-02 27 views
1

我正在使用IntentService執行後臺任務,例如從遠程服務器更新數據。Android IntentService - 防止同一請求的多個實例

在某些情況下,同一個請求可以被用戶多次排隊,但我只想執行一次(從服務器連續兩次更新數據沒有意義)。

有沒有一種簡單的方法來使用IntentService來完成此操作,還是應該使用標準的Service?

回答

1

有一個簡單的辦法做到這一點使用IntentService

不幸的是,沒有。無論如何,IntentService使用的Handler隊列通過SDK不可見,並且沒有公開的方法可讓您檢查其內容。

我應該只使用標準服務嗎?

也許。您可以嘗試保留自己的工作隊列並行副本,在您的onHandleIntent()中標記重複項並忽略它們,但要確保始終與真正的內部隊列同步,否則可能會變得糟糕。

+0

IntentService的實現非常簡單 - 我只是實現我自己的。 – Ralf 2012-04-02 14:47:48