针对登录活动的IntentService与AsyncTask?

时间:2017-04-11 09:00:38

标签: android android-asynctask intentservice

我想在我的应用中使用网络服务进行登录活动。提出请求的最佳做法是什么?

我应该使用IntentService还是应该使用AsynkTask类并覆盖其方法?

4 个答案:

答案 0 :(得分:2)

使用AsyncTask将有助于使您的代码更加简单。 在这种情况下,您将只使用一个类到另一个类。在这种情况下,您可以以最简单的方式传输数据。

在第二种情况下 - intentservice - 您必须编写/读取/收集/提取数据,时间滞后等。

修改 1.您可以在轮换前取消请求 2.您可以检查您的请求是否正在进行中,并且不再启动它。 3.您可以在登录屏幕中禁用旋转。

答案 1 :(得分:2)

如果使用IntentService,则必须实现Binder与UI通信,而AsyncTask提供更新UI的回调。

但是,AsyncTask的缺点是每次启动调用活动时都会启动它。因此,要处理此问题,您可以使用AsyncTaskLoader为后台工作提供AsyncTask并处理其状态,以避免通过配置更改再次启动它。

Android开发人员教程有一个很好的例子,说明如何使用AsyncTaskLoader。你可以找到它here

答案 2 :(得分:1)

您应该使用Aysnc任务,因为IntentService在后台运行,因此您必须在网络呼叫响应后更新UI。

因此异步任务更适合您的情况。

我们用于长期后台运行任务的IntentService,它将在完成工作后自行终止。

答案 3 :(得分:0)

AsyncTask只是在类中运行异步操作。

IntentService运行一项新服务并执行您想要的操作。

使用AsyncTask会更容易,因为您可以在活动中使用它,您可以将目标运行到目标活动(注册者,用户区域等)。

如果您使用IntentService,则必须创建绑定器,收集数据,监控它等等。为此目的,IntentService的工作量远远超过它的价值。