【问题标题】:Using Sync Adapters+ Volley/RoboSpice for Syncronous processing of Network Requests使用同步适配器 Volley/RoboSpice 同步处理网络请求
【发布时间】:2014-05-06 00:10:40
【问题描述】:

我的应用程序需要定期向服务器请求新数据。我对此进行了研究,许多人建议使用同步适配器与服务器同步,但是我的要求发生了变化,我需要执行以下过程。是否仍然建议使用同步适配器,或者我可以使用任何其他库来有效地制作以下 Http 请求序列。

public void onPerformSync(Account account, Bundle extras, String authority, ContentProviderClient provider, SyncResult syncResult) {

        ZipFile imageZipFile;

        /*this is a http post request and the size the zipfile is around 1Mb*/
        ZipFile resultFile=makeHttpPostRequest(String URL, String payload); 

        SomeObject result= processZipFile(resultZipFile);

        saveData(result);

         for(String url:result.getUrls()){

              /* this is a HttpGet request which returns a zip file that 
              contains 8 images , total size of zip would be around 200kb*/
              imageZipFile= makeHttpGetRequest(url); 

              saveImageZipToDisk(imageZipFile) 
         }

       }

如您所见,我正在发出 Http Post 请求以获取一些包含图像 URL 的数据,并使用这些 URL 发出新的 HttpGet 请求。我需要 POST 的结果以及我的应用程序运行的图像。

这是使用同步适配器的有效方式还是完全不可接受?或者我可以使用 Volley/Robo spice 将图像请求生成到多个线程吗?抱歉,我是新手,但这是我一直在尝试解决的问题。

更新:

所以在回顾了 Volley 和 Robospice 的优缺点之后,我使用了 volley,因为我可以自定义代码并对缓存机制有更多的控制。

【问题讨论】:

    标签: android android-volley android-syncadapter robospice


    【解决方案1】:

    所有替代方案都应该有效。

    使用异步适配器,您将获得:

    • 原生 android 进程中的异步后台处理
    • 可能比应用进程更轻量级,具体取决于您的设计
    • 但应用程序和异步适配器之间的通信将涉及 IPC,这意味着捆绑/解绑东西

    使用 Volley,您将获得:

    • 在 Volley 线程中与您的应用在同一进程中进行异步后台处理
    • 您的请求和您的应用程序之间的通信将是一个完全双向的 OO 通道

    使用 RoboSpice,您将获得:

    • volley 提供什么,但请求将在 Android 服务中执行
    • 可能更容易设置缓存
    • 更多网络替代方案(spring android、google http 客户端、改造)等。

    【讨论】:

    • 所以在robospice和凌空之间。由于我正在下载多个图像的 zip 文件(每个大小为 300kb),您是否建议使用 robospice,因为我在一些线程中听说 volley 最适合用于短网络调用?
    • 我认为这完全取决于您。两个库具有或多或少相同的功能。我只能说,它与 RS 配合得很好。我不是 volley 用户,但很有可能它也会起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多