爱学习,爱生活,我是万子。继续从1000行开始研究
可以获取到 SDCard/Android/data/你的应用的包名/files/ 目录,一般放一些长时间保存的数据
获取路径:/storage/emulated/0/Android/obb/应用包名
该目录是应用的数据存放目录,一般被用来存放游戏数据包obb文件。默认存在,可读写(6.0系统可以不用向用户申请)
获取路径:/data/user/0/应用包名/cache
该目录是应用的文件缓存目录,应用被卸载时,该目录一同被系统删除。默认存在,默认具备读写权限。不同于getFileDir,该目录下的文件在系统内存紧张时,会被清空文件,来腾出空间供系统使用,著名的图片加载库ImageLoader就是在没有外置存储读写权限时使用此文件夹。getFileDir,不会因为系统内存不足而被清空。(6.0系统可以不用向用户申请)
https://yq.aliyun.com/articles/59477
获取路径:/data/user/0/应用包名/code_cache
默认存在,可读写。(6.0系统可以不用向用户申请)
获取路径:(以下载目录为准) /storage/emulated/0/Android/data/应用包名/files/Download
默认存在,可读写。(6.0系统可以不用向用户申请)
系统的api
返回预加载缓存中特定于应用程序的目录的绝对路径。<p>当设备在存储空间上运行时,可以删除缓存目录中存储的文件。无法保证这些文件何时会被删除。
获取路径:/storage/emulated/0/Android/data/应用包名/cache
默认存在,可读写。(6.0系统可以不用向用户申请)
返回所有共享/外部存储设备上特定于应用程序的目录的绝对路径,应用程序可以在其中放置媒体文件。这些文件被扫描并通过以下方式提供给其他应用程序
检索,如果需要,创建一个新目录,应用程序*可以在其中放置自己的自定义数据文件。可以使用返回的File*对象创建和访问此目录中的文件。注意,通过File对象创建的文件*只能由您自己的*应用程序访问;您只能设置整个目录的模式,而不能设置单个文件的*模式。
打开与上下文的*应用程序包关联的新的私有SQLiteDatabase。如果数据库文件不存在,则创建它。
打开与上下文的*应用程序包关联的新的私有SQLiteDatabase。如果不存在,则创建数据库文件。
将现有数据库文件从给定源存储上下文移到*此上下文。这通常用于在升级之后在存储*位置之间迁移数据,例如迁移到设备保护*存储。
删除与此上下文的*应用程序包关联的现有私有SQLiteDatabase。
返回文件系统上的绝对路径,其中存储有*{@link#openOrCreateDatabase}创建的数据库
返回命名与*this Context的应用程序包相关联的私有数据库的字符串数组。
获取墙纸路径 WallpaperManager代替
设置墙纸但是需要权限
清理android的桌面
我靠为啥context中会有startActivity
原来startActivity不仅仅实在Activity,原来context已经实现了,所以只要有上下文就可以跳转到任何的Activity
将结果返回给调用者的{@link#startActivity(Intent,Bundle)}版本。这个*只支持View和Fragments
向所有感兴趣的广播接收机广播给定的意图。这个调用是异步的;它立即返回,在接收器运行时,您将继续*执行。没有从接收器传播结果,并且接收器不能中止广播。如果希望*允许接收者传播结果或中止广播,则必须*使用以下命令发送广播
向所有感兴趣的BroadcastReceiver广播给定的意图,一次一个*地传送它们,以允许更多的优选接收器在将*广播传送给不太优选的接收器之前使用*广播。这个*调用是异步的;它立即返回,在接收器运行时,您将继续*执行。
Register a BroadcastReceiver to be run in the main activity thread. The
* <var>receiver</var> will be called with any broadcast Intent that
* matches <var>filter</var>, in the main application thread.
注册要在主活动线程中运行的BroadcastReceiver,在主应用程序线程中。
取消注册之前注册的广播接收器。已为此广播接收器注册的所有过滤器将被删除。
请求启动给定的应用程序服务。Intent*应该包含要启动的特定服务*实现的完整类名,或者包含要作为目标的特定包名。如果*Intent的指定较少,它将记录关于这个的警告。在这种情况下,可以使用任何*多个匹配服务。如果这个服务*还没有运行,它将被实例化并启动(如果需要的话,为它创建一个*进程);如果它正在运行,那么它仍然在运行。
与{@link#startService(Intent)}类似,但是隐式承诺一旦开始运行,服务将调用{@link android.app.Service#startFore.(int,android.app.Not.)*startFore.(int,android.app.Not.)}。该服务被给予*与ANR时间间隔相当的时间量,否则系统*将自动停止服务并声明应用程序ANR。
前台服务
停止服务
连接到应用程序服务,如果需要,创建它。这定义了应用程序和服务之间的依赖关系。给定*<var>conn</var>在创建服务对象时将接收该服务对象,如果该服务对象死亡并重新启动,则被*告知。只要调用上下文存在,系统就会认为服务是必需的。例如,如果此上下文是停止的活动,则服务*不需要继续运行,直到活动恢复为止。
从应用程序服务断开连接。当服务重新启动时,您将不再接收调用,并且现在允许服务在任何时间停止。
按名称将句柄返回到系统级服务
判断权限
判断上下文是否受限制
指示此上下文的存储API是否由*设备保护存储支持。
指示此上下文的存储API是否由*凭证保护的存储支持。
如果上下文可以加载不安全的资源(例如字体),则返回true。
总结:通过这些方法可以看出Context作出了很多Activity,BroadcastReceiver,service以及文件本地缓存存储的实现接下来研究研究Activity都封装了一些什么方法。