2

AsyncTask在我的应用程序中实现了一个并遇到了异常,例如IllegalArgumentException. 我问了关于堆栈溢出的问题,有人说我不应该AsyncTask在应用程序中使用,原因如下。

  • AsyncTasks 不遵循 Activity 实例的生命周期
  • 内存泄漏问题
  • 您的任务进度将丢失

我被推荐 Robospice 并被告知考虑这个线程 AsyncTask并不是在 Android 上创建网络请求的最佳工具。使用 RoboSpace

谁能告诉我异步使用接入网络的最佳选择是什么?我应该使用什么AsyncTask或 RoboSpice?

4

5 回答 5

3

根据Google IO 的这个人的说法,使用 AsyncTask 进行网络并不是一条可行的路。他可能会以令人讨厌和居高临下的语气进行演讲,但仍然有一些优点。

IMO 主要使用的库是android-async-httprobospice

免责声明:我还没有尝试过其中任何一个。虽然我更喜欢 android-async-http 的 API,但似乎 Robospice 是最近开发的并且支持更好的库。

我最终可能会滚动自己的扩展IntentService

于 2013-04-30T23:02:44.120 回答
1

这是一个 Android 异步 Http 客户端库文件来完成这些工作。试试。

http://loopj.com/android-async-http/

于 2013-04-16T09:55:24.883 回答
0

我在所有应用程序中都使用 AsyncTask。没问题。

片段 http://pastebin.com/EDZtKy3M中的示例

CustomTask 的自定义实现示例库 http://pastebin.com/F18hRXr6

于 2013-04-16T10:00:12.973 回答
0

我一直在为几个项目使用 AsyncTasks,但从未遇到过这样的问题。尽管如此,正如 Snicolas 在该帖子中所说,如果您使用 AsyncTasks 进行长时间运行的操作,可能会出现问题(注意粗体字)。

因此,如果您正在做短期操作,请尝试 AsyncTasks,否则我会尝试 Robospice。

于 2013-04-16T09:55:56.747 回答
0

一个 asyncTask 实例只能使用一次,如果要执行第二个请求必须再次调用 new()

于 2013-04-16T09:58:18.177 回答