android缓存数据到本地放在哪儿最好?
来源:互联网 发布:爱思助手mac 编辑:程序博客网 时间:2024/05/21 10:27
之前一直不知道 sdcard/Android目录什么作用,我做的项目里面缓存数据到本地一般都是在sdcard上面建一个文件,然后把数据放在这个文件夹下面的子文件夹下。下面介绍一种更好的解决方法。
应用程序在运行的过程中如果需要向手机上保存数据,一般是把数据保存在SDcard中的。
大部分应用是直接在SDCard的根目录下创建一个文件夹,然后把数据保存在该文件夹中。这样当该应用被卸载后,这些数据还保留在SDCard中,留下了垃圾数据。
如果你想让你的应用被卸载后,与该应用相关的数据也清除掉,该怎么办呢?
通过Context.getExternalFilesDir()方法可以获取到 SDCard/Android/data/你的应用的包名/files/ 目录,一般放一些长时间保存的数据
通过Context.getExternalCacheDir()方法可以获取到 SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据
如果使用上面的方法,当你的应用在被用户卸载后,SDCard/Android/data/你的应用的包名/ 这个目录下的所有文件都会被删除,不会留下垃圾信息。
而且上面二个目录分别对应 设置->应用->应用详情里面的”清除数据“与”清除缓存“选项
原文地址:http://www.eoeandroid.com/forum.php?mod=viewthread&tid=273674&page=1#pid2695014
总结一下android 中的几种目录:
1、通过Context.getExternalFilesDir()方法可以获取到 SDCard/Android/data/你的应用的包名/files/ 目录,一般放一些长时间保存的数据
通过Context.getExternalCacheDir()方法可以获取到 SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据
2、Context.getFilesDir()可以获取到"/data/data/<package name>/files" 这个方法获取的目录不是在sdcard上,而是在应用安装的目录
Context.getCacheDir可以获取到"/data/data/<package name>/cache" 这个方法获取的目录不是在sdcard上,而是在应用安装的目录,这个文件里面的数据在设备内存不足的时候,会被系统删除数据。注意:你不能依赖系统帮你删除这些文件,当这个文件夹里面的数据超过1MB的时候,系统会删除这个文件夹里面的数据。
我个人理解可以将应用的当前登录用户的信息等 保存在cache目录中。
- android缓存数据到本地放在哪儿最好?
- android缓存数据到本地放在哪儿最好?
- android缓存数据到本地放在哪儿最好?
- android缓存数据到本地放在哪儿最好?
- android缓存数据到本地放在哪儿最好?
- android缓存数据到本地放在哪儿最好?
- android缓存数据到本地放在哪儿最好?
- android缓存数据到本地放在哪儿最好?
- android缓存数据到本地放在哪儿最好?
- android缓存数据到本地放在哪儿最好?
- android缓存数据到本地放在哪儿
- android缓存数据到本地
- android:缓存服务器数据到本地
- 如何为Android缓存数据到本地
- Android清除本地数据缓存
- 电脑qq发送到手机的文件在哪儿放着
- 【Android】Android清除本地数据缓存代码
- 【Android】Android清除本地数据缓存代码
- oracle 修改服务端字符集导致ORA-12712错误
- oracle exp、imp实现导出导入
- 一直以来伴随我的一些学习习惯(二):时间管理
- OpenCV成长之路(2):图像的遍历
- 有一个函数int getNum(),每运行一次可以从一个数组V[N]里面取出一个数,N未知,当数取完的时候,函数返回NULL。现在要求写一个函数int get(),这个函数运行一次可以从V[N]里随机
- android缓存数据到本地放在哪儿最好?
- [Effective Java Distilled] Item 二 当构造方法中有多个参数时,考虑建造者模式
- 由PostgreSQL的区域与字符集说起
- mysql中engine=innodb和engine=myisam的区别
- axis2 spring集成开发webServices
- Android ADB server didn't ACK * failed to start daemon * 简单有效的解决方案
- JUnit-4.11使用报java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing错误
- Ubuntu 12.04下安装MySQL图解
- 感谢CSDN