OneDrive模块开发小结(二)--- 性能及其他问题解决方案

时间:2014-04-29 13:36:20   收藏:0   阅读:285

继上篇OneDrive模块开发小结(一)--- 获取登陆时email http://blog.csdn.net/vic_fang/article/details/23282311 之后,再做一个阶段性小结


1. 关于同步方法和异步方法

onedrive的demon项目中提供了两种方式的api,以获取文件详细信息为例:get(String id), getAsync(String id, LiveOperationListener listener)。get(String id)方式是纯异步的, getAsync(String id, LiveOperationListener listener)需要用户在listener中实现回调接口,回调函数是在UI线程中,所以你可以在这里直接做UI控制的事情


2. 关于获取文件的InputStream

如果你的需求中需要获取文件的InputStream,需要使用download(string upload_location)接口,onedrive在数据结构中提供了两个url,一个link一个upload_location,虽然你可以直接使用这两个url构建HttpURLConnection,但是onedrive内部有验证机制,用这种方式是拿不到对应文件的InputStream的。download(string upload_location)接口返回LiveDownloadOperation对象,该对象提供了getStream方法


3. 关于onedrive需要频繁访问网络,如何提高性能(效率)的问题

项目中提供了缓存机制,构建一个小型数据库,把onedrive访问网络时,一些文件和文件夹的详细信息存储下来,下次需要获取相关数据时,先查找数据库,若没有再从onedrive网络上取数据,并保存到数据库中,当需求中有需要频繁访问onedrive网络时,可以有效提高效率

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!