大团结爱奇艺怎么离线缓存存 怎么缓存????

今天看啥 热点:
android中如何实现离线缓存,android离线缓存
离线缓存就是在网络畅通的情况下将从服务器收到的数据保存到本地,当网络断开之后直接读取本地文件中的数据。
将网络数据保存到本地:
你可以自己写一个保存数据成本地文件的方法,保存在android系统的任意目录(当然是有权限的才行),但是在这种情况下使用Context的openFileOutput方法最简便也最符合我们的场景,下面的saveObject方法演示了如何用openFileOutput将数据保存在本地的一个文件中:
saveObjectpublic static boolean saveObject(Serializable ser, String file) {
FileOutputStream fos =
ObjectOutputStream oos =
fos = AppContext.getInstance().openFileOutput(file, AppContext.getInstance().MODE_PRIVATE);
oos = new ObjectOutputStream(fos);
oos.writeObject(ser);
oos.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
oos.close();
} catch (Exception e) {
fos.close();
} catch (Exception e) {
openFileOutput可以直接获得一个和应用关联的文件路径(在/data/data/&package name&/files下面),然后使用java io中的ObjectOutputStream将序列化的对象写入(writeObject)到得到的文件中,你可以看到上面的实现过程有两个关键方法:openFileOutput、writeObject以及调用它们的两个关键对象Context和ObjectOutputStream。关于序列化可以参看这篇文章:Java对象的序列化和反序列化实践
这是将一个序列化的对象保存在本地,跟我们的离线缓存保存网络数据有什么关系呢?
有关系,因为网上获取的数据大多可以转换成String类型的字符串,现在服务端返回的数据一般是json格式的字符串。而String类型的字符串其实就是可序列化的对象。下面是一个服务器返回json数据的例子(其实就是jcodecraeer网站的一个移动客户端升级接口):{&url&:&/uploads/soft/android/CodeBox.apk&,&versionCode&:&7&,&updateMessage&:&增加离线缓存,分类筛选功能修正了版本兼容性问题 &}
用上面的saveObject方法我们可以将数据保存在本地,为了能够取出这个文件我们必须想好如何为这个保存的文件命名,如果是单纯的一篇文章的数据,我们可以直接将文件名命名为这篇文章的id,因为id是唯一的,为了尽可能的不和其他数据发生冲突,你还可以在这个id之前加一个前缀,比如这篇文章是java栏目下的我们可以这样 arc_java_id。如果是文章列表我们可以这样命名:文章类别_分页页码,总之命名的原则是能和其他离线数据区别,有唯一性。为什么不用url作为文件名呢?url肯定是唯一的,但是url不一定符合文件的命名规范。
下面来讲解如何读取本地缓存的数据
读取缓存的时候我们只需要知道文件名就可以了,下面的readObject方法实现了根据文件名读取缓存数据。其实很多东西是和上面保存数据对应的。
readObject
* 读取对象
* @param file
* @throws IOException
public static Serializable readObject(String file) {
FileInputStream fis =
ObjectInputStream ois =
fis = AppContext.getInstance().openFileInput(file);
ois = new ObjectInputStream(fis);
return (Serializable) ois.readObject();
} catch (FileNotFoundException e) {
} catch (Exception e) {
e.printStackTrace();
} finally {
ois.close();
} catch (Exception e) {
fis.close();
} catch (Exception e) {
下面的代码演示了如何用上面的知识存储和读取网络数据String key = &codelist_& +
mCategory.getValue()
String result = &&;
if (HttpUtil.isNetworkConnected()) {
result = HttpUtil.http_get(AppContext.getInstance(), url );
HttpUtil.saveObject(result, key);
result = (String) HttpUtil.readObject(key);
result = (String) HttpUtil.readObject(key);
if (result == null)
result = &erro&;
当网络畅通时,从服务器获取数据( HttpUtil.http_get(AppContext.getInstance(), url )),同时将数据保存到本地(HttpUtil.saveObject),而当网络不可用时,直接从本地读取缓存的数据,不跟服务器发生交互。
其中HttpUtil是跟网络相关的工具类,这里涉及到它的三个方法:
isNetworkConnected()判断网络是否可用
saveObject上面已经给出了实现
readObject上面已经给出了实现
http_get读取指定url的服务器数据
而AppContext.getInstance()是我自己写的,是为了方便在HttpUtil的静态方法中获得Context对象。
这里的key就是文件名。
额外的需求
有时候我们还有这样的需求,当用户在指定间隔时间内读取同一数据源时,从本地获取,超过这个时间间隔从网络获取,这样做的目的是节省用户的流量,同时也避免了每次从网络获取数据造成的界面延迟。
下面实现了如何根据时间间隔判断是否需要刷新服务器数据,true表示不需要,false表示需要(很别扭是吧,这跟isCacheDataFailure这个命名有关系):
public static boolean isCacheDataFailure(String cachefile) {
boolean failure =
File data = AppContext.getInstance().getFileStreamPath(cachefile);
if (data.exists()
&& (System.currentTimeMillis() - data.lastModified()) & CACHE_TIME)
else if (!data.exists())
将当前时间和文件的修改时间做比较 ,CACHE_TIME是一个固定值(毫秒),你可以替换成任意int类型。
将这个判断条件加入,然后上面的代码改成:
String key = &codelist_& +
mCategory.getValue()
String result = &&;
if (HttpUtil.isNetworkConnected() && HttpUtil.isCacheDataFailure(key)) {
result = HttpUtil.http_get(AppContext.getInstance(), url );
HttpUtil.saveObject(result, key);
result = (String) HttpUtil.readObject(key);
result = (String) HttpUtil.readObject(key);
if (result == null)
result = &erro&;
上面的步骤对于一般应用来说已经够用了,但是在要求比较高的情况下,我们还得考虑随着时间的流逝,缓存数据会越来越多,因此我们需要增加删除过期缓存的功能,原理就是设置一个阀值,在保存缓存的时候,判断当前缓存的总量是否大于阀值,如果是则删除时间较早的缓存。
这个实现起来有点复杂,可以考虑更简单的方案,定期检查(或者用户每打开一次程序)缓存总量,当大于阀值,提示用户主动删除。具体实现就不多说了。
注:openFileOutput()方法的第一参数用于指定文件名称,不能包含路径分隔符“/” ,如果文件不存在,Android 会自动创建它。创建的文件保存在/data/data/&package name&/files目录,如: /data/data/cn.itcast.action/files/itcast.txt
,通过点击Eclipse菜单“Window”-“Show View”-“Other”,在对话窗口中展开android文件夹,选择下面的File Explorer视图,然后在File Explorer视图中展开/data/data/&package name&/files目录就可以看到该文件。
openFileOutput()方法的第二参数用于指定操作模式,有四种模式,分别为: Context.MODE_PRIVATE & &= &0
Context.MODE_APPEND & &= &32768
Context.MODE_WORLD_READABLE = &1
Context.MODE_WORLD_WRITEABLE = &2
Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。可以使用Context.MODE_APPEND
Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。
Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件。
MODE_WORLD_READABLE:表示当前文件可以被其他应用读取;MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。
如果希望文件被其他应用读和写,可以传入:
openFileOutput(“itcast.txt”, Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE)
本文来源于我们的网站上
android中如何实现离线缓存 一文。
相关搜索:
相关阅读:
相关频道:
Android教程最近更新9300下载了开迅视频播放器,怎么删除离线缓存的视频呢??_百度知道
9300下载了开迅视频播放器,怎么删除离线缓存的视频呢??
就是不想看到已删除的离线缓存的视频在开迅视频里,可是却无法删除在软件里的文件,当然是显示删了,可是在软件上还是显示离线缓存的视频,在文件里已经删除下载后的文件
我有更好的答案
按默认排序
他又会重新加载,软件没有记录他不知道 你在软件里播放那个文件是没有的。你删除了文件那只是个记录
其他类似问题
视频播放器的相关知识
您可能关注的推广
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁您当前所在位置:
爱奇艺视频如何下载离线缓存 爱奇艺视频下载离线缓存方法
爱奇艺视频如何下载离线缓存 爱奇艺视频下载离线缓存方法
爱奇艺视频如何下载离线缓存?爱奇艺视频现在同样可以下载离线缓存了,我们可以在wifi情况下先下载离线缓存,这样方便我们可以在没有网络的情况下也一起可以观看视频。
相关软件下载:爱奇艺视频
软件名称:爱奇艺视频
下载地址:
软件类别:影音播放
软件版本:5.9.1
爱奇艺视频手机客户端是一款高清视频播放器。爱奇艺视频拥有海量正版高清影视资源,可供用户飞速离线观看。
  爱奇艺视频如何下载离线缓存?爱奇艺视频现在同样可以下载离线缓存了,我们可以在wifi情况下先下载离线缓存,这样方便我们可以在没有网络的情况下也一起可以观看视频。今天小编就教大家爱奇艺视频如何下载离线缓存,希望能帮助到大家。
  1)首先打开爱奇艺视频,在首页选择要观看的视频点击进入,在界面点击【放大标志】。(如下图)
  2)在观看视频界面点击【离线缓存】,弹出窗口选择离线剧集点击一下。(如下图)
  3)最后会显示添加成功,点击【好的】即可。(如下图)
关键词标签:
延伸相关阅读:
软件教程推荐
第九专题推荐
每周酷软推荐
小巧方便的极速浏览器
彩蝶浏览器是一款便捷、小巧的上网浏览工具,占用内存小,一键触达...
第九手机应用推荐用手机看56视频没有离线缓存?离线缓存在哪里怎么没看见?_百度知道
用手机看56视频没有离线缓存?离线缓存在哪里怎么没看见?
指定位置,要清除可以用lbe安全大师
其他类似问题
56视频的相关知识
按默认排序
其他2条回答
手机屏幕右上方有个箭头那个就是
应该是在播放器的右下角。有个向下的箭头,点开就可以了,要不你就进设置中心去找。有些视频是不能缓存的,他因为版权问题,你只能在线看。
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁苹果手机怎么删除离线缓存_百度知道
苹果手机怎么删除离线缓存
提问者采纳
主可以使用手机管理软件来清理建议楼主使用腾讯手机管家来为手机清除缓存, 使用垃圾清理功能来清理软件缓存、垃圾文件。具体步骤、系统缓存、软件卸载残余文件及多余安装包
其他类似问题
按默认排序
其他2条回答
没的话只能手动清理如果越狱了、系统缓存,可以保证手机清理的干净彻底如果您有其他疑问可以继续追问、软件卸载残留的清理你手机越狱了吗、垃圾文件,希望您采纳、多余安装包,才能用软件进行清理您到官网下载腾讯手机管家打开腾讯手机管家——清理加速—清理垃圾—立即清理腾讯手机管家清理缓存包括了针对软件缓存
建议楼主使用腾讯手机管家来为手机清除缓存,
使用垃圾清理功能来清理软件缓存、垃圾文件、系统缓存、软件卸载残余文件及多余安装包。 具体步骤: 手机百度搜索”腾讯手机管家”--下载安装腾讯手机管家--打开腾讯手机管家—健康优化—垃圾清理—垃圾扫描—完成 腾讯手机管家,是一款完全免费的手机安全与管理软件。集齐病毒查杀、骚扰拦截、软件权限管理等安全防护功能与用户流量监控、空间清理、体检加速、软件管理功能为一体的手机安全软件,能够非常好的防护您的手机安全.
苹果手机的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 ipad爱奇艺离线缓存 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信