我使用的教材是《第一行代码》,感谢开放的互联网。
本篇内容包含:Fragement知识,BroadcastReceiver进行消息响应,Git版本控制和数据存储相关入门,以及ContentProvider中对于跨程序数据读取的学习和实践。
【Fragment
在一个Activity中写入两个布局,布局当组件用,但是算作一个类对象,也绑定了相关布局
动态添加
实现返回栈
生命周期
动态加载布局
kotlin知识
扩展函数
对类对象添加函数
fun ClassName: methodName(param1: Int, param2:Int): Int {
return 0
}
运算符重载
关键字: operator
【广播机制
发送:intent
接收:BroadcastReceiver
广播分类
标准广播
有序广播
注册
- 动态注册:Activity代码中,销毁时需要注销
- 静态注册:xml注册表,不启动应用也能被接收,例如开机自启动
- 敏感操作需要声明权限
注册过程需要实例监听器和目标广播
- 敏感操作需要声明权限
自定义广播
拓展:强制下线功能
【kotlin
定义高阶函数
定义:接受和返回的都是函数的函数
函数类型:(String, Int) -> Unit
h函数引用: ::funName
【Git版本控制
创建仓库
提交代码
数据存储
文件存储
context类的opemFileOutput()方法
SharedPreferences存储
键值对方式存储数据
记住密码:新控件:CheckBox
SQLite数据库存储
【权限
xml注册表中 uses-permission 标识权限,在安装时会有特别提示,也可以在系统设置权限中更改这些权限
运行时权限功能:使用中再次授权
实例:申请拨打电话的操作
【ContentProvider
- 读取和操作相应程序的数据
- 提供本程序数据的外部接口
getContentResolver()
内容URL:content://com.example.app.provider/fileName
用法:val uri = Uri.parse(“URL”)
实例:读取联系人
bug:点击给予权限后仍然出现未给予权限提示,但再次打开可以正常运行