这是我参与「第四届青训营 」笔记创作活动的的第6天
我使用的教材是《第一行代码》,感谢开放的互联网。
本篇内容包含:ContentProvider,多媒体和Service
ContentProvider
创建自己的~
创建子类继承ContentProvider,6个子方法需要重写
- override fun onCreate()
- query
- insert
- update
- delete
- getType
- 返回MIME对象:
- vnd + android.cursor.dir/andriod.cursor.item + vnd..
URL写法中:
…/fileName/id:可指定数据表中的某一数据
匹配用*(任意长度字符=任意表)和#(任意长度数字=任意一行内容)
UriMatcher:判断访问什么数据
传入三个参数:authority, path, 自定义代码
kotlin
-
泛型:对变量不指定具体类型
类似于cpp中的模板,需要在实例中指定类型
可以对模板变量进行限制 -
委托:逻辑的实现交给另一个类来实现
功能分类:
- 类委托
- 委托属性
关键字:by
【多媒体
通知
通知渠道:不同重要程度的通知
创建渠道需要:渠道id,渠道名称,重要等级
通知中放入长文本,图片…
调用摄像头和打开相册
播放多媒体
kotlin
infix函数:增强可读性
Git教学
- 撤销未提交修改
- 查看提交日志
- 忽略文件
【Service
程序后台运行的解决方案
多线程
修改bug:
上一期中的问题,将修改条件由:
grantResults.isEmpty()&& grantResults[0] == PackageManager.PERMISSION_GRANTED
改为:
grantResults[0] == PackageManager.PERMISSION_GRANTED
代码里面的插件在AS4.1之后被弃用了,吐血:
教材作者的补充:
https://guolin.blog.csdn.net/article/details/113089706