有没有办法将Runnable(或Callable)传递给IntentService?

时间:2015-06-17 14:28:42

标签: android

注意:这不是询问是否要将数据编组到Intent中,然后为这些数据派生IntentService的特定具体实现。

所以我的标准IntentService实现工作正常,但我感兴趣的是如果我可以将更通用的类型(例如网络Runnables,I / O任务Callables等)传递给IntentService并让它运行它的路线。

虽然我知道Java并发包(尤其是ExecutorService)已经可以实现,但我喜欢IntentService的易用性以及相关的框架,这对于高度分离的Android任务非常理想。

1 个答案:

答案 0 :(得分:3)

  

所以我的标准IntentService实现工作正常   但我很感兴趣,如果说我可以传递更通用的类型(例如网络   Runnables,I / O任务Callables等)到IntentService并让它   坚持到底。

你无法通过它。您可以创建一个Factory,它创建Runnable / Callable的子类,并根据您在intent中提供的操作,请Factory构建具体实例,然后拨打instance.run()instance.call()。 E.g。

public void onHandleIntent(Intent intent) { 
    YourFactory.create(intent.getAction()).run();
}