在任务内部服务?或者服务中的任务

时间:2015-08-21 07:29:03

标签: android structure

我正在开发一个Android应用程序,我的团队中有更多人,该应用程序具有调用远程apis的服务,你必须在与Asynctask的单独线程中进行这些调用。

现在我必须创建一个新服务,并查看以前由我的伙伴完成的服务,我看到其中一个实例化服务并在服务内部创建了AsyncTask,而另一个伙伴实例化了AsyncTask中的服务

所以我想知道,这是什么最好的做法?或两种方式都是正确的,每种方式都有特定的原因吗?

2 个答案:

答案 0 :(得分:3)

AsyncTask中的服务似乎很奇怪!

最常见的是在Service或Thread-Handler模​​式中使用AsyncTasks,以确保您具有通信调用的“后台”线程。

但是,如果您的服务任务只是执行对远程API的调用,然后将结果返回给调用者,我强烈建议您查看IntentService。区别在于IntentService不需要任何AsyncTask来实现这个“后台”(其他线程)的事情。

检查google doc:http://developer.android.com/reference/android/app/IntentService.html

答案 1 :(得分:1)

  1. 假设您说Service是四个Android组件中的一个。服务只能由Android系统实例化。你不能在AsyncTask中实例化它。如果你通过java new关键字实例化服务,那么实例就像普通的Java类一样,在android系统的控制之外。
  2. 你可以在服务中启动AsyncTask,这是一种常见的设计。