1
我正在使用IntentService执行后台任务,例如从远程服务器更新数据。Android IntentService - 防止同一请求的多个实例
在某些情况下,同一个请求可以被用户多次排队,但我只想执行一次(从服务器连续两次更新数据没有意义)。
有没有一种简单的方法来使用IntentService来完成此操作,还是应该使用标准的Service?
我正在使用IntentService执行后台任务,例如从远程服务器更新数据。Android IntentService - 防止同一请求的多个实例
在某些情况下,同一个请求可以被用户多次排队,但我只想执行一次(从服务器连续两次更新数据没有意义)。
有没有一种简单的方法来使用IntentService来完成此操作,还是应该使用标准的Service?
有一个简单的办法做到这一点使用IntentService
不幸的是,没有。无论如何,IntentService
使用的Handler
队列通过SDK不可见,并且没有公开的方法可让您检查其内容。
我应该只使用标准服务吗?
也许。您可以尝试保留自己的工作队列并行副本,在您的onHandleIntent()
中标记重复项并忽略它们,但要确保始终与真正的内部队列同步,否则可能会变得糟糕。
IntentService的实现非常简单 - 我只是实现我自己的。 – Ralf 2012-04-02 14:47:48