2

当需要进行异步操作时,通常建议将其放入服务中,也许是意图服务。伟大的。但是,也不建议从服务启动活动......因此,当异步响应返回到服务内部时,用户可能在不同的屏幕上。然后它们就是绑定到服务的整个方面......人们想知道哪种方式更好,为什么?我的意思是服务很酷,但存在与服务调用的绑定,还有一个问题是服务不应该回调到活动中。那么哪种方式更好。使用 AsyncTask 与 Service 进行异步工作的标准是什么?还有 requestForResult() 选项也...

4

1 回答 1

3

标准基本上是,

  1. 即使您的应用程序活动不再运行,您是否需要定期更新某些数据或继续某些任务(android 给出了一个音乐播放器的示例,即使没有可见的活动,音乐也会继续播放)?在这里使用服务。

  2. 您是否需要多个应用程序运行您的数据或某些任务?在这种情况下,应用程序需要绑定到您的服务并访问信息。

  3. 您是否有涉及 IPC 的案例?使用服务。

  4. 您是否有一种情况,您需要做的就是完成一项繁重的任务,例如下载数据、一些需要时间的踢屁股算法?在后台线程中执行所有繁重的任务,并在完成后更新 UI。使用异步任务。

异步任务很简单。主要用于您的活动中,以在单独的线程中执行繁重的任务以避免 ANR。

另一方面,服务用于执行即使您的应用程序未运行也需要运行的任务,其他应用程序需要绑定以更新数据,您需要在显示活动之前更新数据。

我相信还有更多的标准,但这些只是我刚刚想到的一些。

于 2012-04-13T04:57:34.237 回答