连接到android的web服务
我正在编写一个连接到REST / JSON web服务的android应用程序。 用户将获取信息,上传评论,下载和上传图片等。
我知道我不应该在Activity / UI线程中保留所有这些网络通信,因为它会导致ANR。 我感到困惑的是,我是否应该使用AsyncTask或带有“手动”线程的服务来完成此任务;
有了服务,我只需要为webservice的API中的每个方法提供一个公共方法。 然后,我会在这些方法中实现线程化。
如果我使用了一个AsyncTask,我会创建一个帮助类,为webservice的API中的每个方法定义AsyncTasks。
哪种方法是首选? 与web服务的交互只会在用户处于活动状态时发生。 一旦他们切换到另一个应用程序,或退出程序,就不需要与web服务进行通信。
我建议你选择AsyncTask解决方案。 这是运行UI线程的请求或任何其他后台任务的简单直接方式。
如果您在运行请求时需要显示某种进度条,那么实现onProgressUpdate也很容易。
我推荐IntentService
,它的实现并不复杂得多,而且肯定更强大,因为它并不与ActivityLifecycle紧密结合(特别是onConfigurationChange()
)
这个库为Android中提供的Apache httpclient提供了一个异步包装器。
http://loopj.com/android-async-http/
链接地址: http://www.djcxy.com/p/74519.html