Fragement,BroadcastReceiver,数据存储和ContentProvider——客户端开发学习| 青训营笔记

75 阅读2分钟

image.png

这是我参与「第四届青训营 」笔记创作活动的的第5天

我使用的教材是《第一行代码》,感谢开放的互联网。

本篇内容包含: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")

实例:读取联系人

Screenshot_20220804_202911_com.android.permission.jpg

Screenshot_20220804_203330.jpg

bug:点击给予权限后仍然出现未给予权限提示,但再次打开可以正常运行