【转】Context.getExternalFilesDir()和Context.getExternalCacheDir()方法

应用程序在运行的过程中如果需要向手机上保存数据,一般是把数据保存在SDcard中的。
大部分应用是直接在SDCard的根目录下创建一个文件夹,然后把数据保存在该文件夹中。
这样当该应用被卸载后,这些数据还保留在SDCard中,留下了垃圾数据。
如果你想让你的应用被卸载后,与该应用相关的数据也清除掉,该怎么办呢?

通过Context.getExternalFilesDir()方法可以获取到 SDCard/Android/data/你的应用的包名/files/ 目录,一般放一些长时间保存的数据
通过Context.getExternalCacheDir()方法可以获取到 SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据

如果使用上面的方法,当你的应用在被用户卸载后,SDCard/Android/data/你的应用的包名/ 这个目录下的所有文件都会被删除,不会留下垃圾信息。

而且上面二个目录分别对应 设置->应用->应用详情里面的”清除数据“与”清除缓存“选项

如果要保存下载的内容,就不要放在以上目录下

时间: 2024-11-03 21:38:20

【转】Context.getExternalFilesDir()和Context.getExternalCacheDir()方法的相关文章

Android 缓存目录 Context.getExternalFilesDir()和Context.getExternalCacheDir()方法

一.基础知识 应用程序在运行的过程中如果需要向手机上保存数据,一般是把数据保存在SDcard中的.大部分应用是直接在SDCard的根目录下创建一个文件夹,然后把数据保存在该文件夹中.这样当该应用被卸载后,这些数据还保留在SDCard中,留下了垃圾数据.如果你想让你的应用被卸载后,与该应用相关的数据也清除掉,该怎么办呢? 通过Context.getExternalFilesDir()方法可以获取到 SDCard/Android/data/你的应用的包名/files/ 目录,一般放一些长时间保存的数

解决Context.getExternalFilesDir(null)返回null造成java.lang.NullPointerException的问题

问题产生: 今天在写一个日志工具类的时候,想把日志文件放在外存储设备的应用专用文件夹里,即,如:/mnt/sdcard/myPackageName /Android/data/files下.很自然的用起来Context.getExternalFilesDir(null)方法,但是在写好工具 类,测试时报java.lang.NullPointerException,懵了! 找了好久的解决方法: 有说是因为   权限问题,把< uses-permission android:name ="an

spring注解注入:&lt;context:component-scan&gt;以及其中的context:include-filter&gt;和 &lt;context:exclude-filter&gt;的是干什么的?

转自:https://www.cnblogs.com/vanl/p/5733655.html spring从2.5版本开始支持注解注入,注解注入可以省去很多的xml配置工作.由于注解是写入java代码中的,所以注解注入会失去一定的灵活性,我们要根据需要来选择是否启用注解注入. 在XML中配置了这个标签后,spring可以自动扫描base-package下面或者子包下面的java文件,如果扫描有@Component @Service @Controller等这些注解的类,则把这些类注册为bean.

Linux Context , Interrupts 和 Context Switching 说明【转】

转自:http://blog.csdn.net/tianlesoftware/article/details/6461207 一. 进程Context 定义 当一个进程在执行时, CPU的所有寄存器中的值.进程的状态以及堆栈中的内容,比如各个变量和数据,包括所有的寄存器变量.进程打开的文件.内存信息等.这些信息被称为该进程的上下文(Context). 一个进程的Context可以分为三个部分:用户级上下文.寄存器上下文以及系统级上下文: (1)用户级上下文: 正文.数据.用户堆栈以及共享存储区:

[转载]Difference between &lt;context:annotation-config&gt; vs &lt;context:component-scan&gt;

在国外看到详细的说明一篇,非常浅显透彻.转给国内的筒子们:-) 原文标题: Spring中的<context:annotation-config>与<context:component-scan>到底有什么不同? 原文出处:http://stackoverflow.com/a/7456501 <context:annotation-config> is used to activate annotations in beans already registered in

EF How to use context.Set and context.Entry, which ships with EF4.1 ?

How to use context.Set and context.Entry, which ships with EF4.1 ? Hello, I am trying to implement a generic repository as explained on the following link :- http://www.asp.net/entity-framework/tutorials/implementing-the-repository-and-unit-of-work-p

Spring &lt;context:annotation-config&gt; 和 &lt;context:component-scan&gt;区别

原版: https://stackoverflow.com/questions/7414794/difference-between-contextannotation-config-vs-contextcomponent-scan/ 翻译版: http://www.cnblogs.com/leiOOlei/p/3713989.html <context:annotation-config> is used to activate annotations in beans already re

Spring基础系列16 -- &lt;context:annotation-config&gt; 和 &lt;context:component-scan&gt;的区别

<context:annotation-config> 和 <context:component-scan>的区别 转载:http://www.cnblogs.com/leiOOlei/p/3713989.html <context:annotation-config> 是用于激活那些已经在spring容器里注册过的bean(无论是通过xml的方式还是通过package sanning的方式)上面的注解. <context:component-scan>除了

使用&lt;context:component-scan base-package=&quot;&quot; &gt;&lt;/context:component-scan&gt;报500错误

今天练习SSH小程序,在springmvc.xml中使用<context:component-scan base-package="" ></context:component-scan> 组件扫描controller的时候,一直报500错误,在网上查了很久没有解决.错误如下 于是便将其注释掉,使用<bean class=""></bean>使用bean来一个个添加..500错误没有了,但是来了个空指针异常.我打印输出