安卓四大组件之Activity(一)Context(1000-4984行)

爱学习,爱生活,我是万子。继续从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都封装了一些什么方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

万子开发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值