ContentProvider+ContentResolver+UriMatcher+SQLite的用法示例
1. 引言在 Android 中,数据共享是应用开发中非常重要的一部分。为了在不同应用之间共享数据,Android 提供了 ContentProvider 机制,通过该机制,应用能够访问其他应用的数据或向其他应用提供自己的数据。结合 SQLite 数据库、ContentProvider、ContentResolver 和 UriMatcher,我们可以方便地实现数据的持久化存储、查询、插入、更新和删除操作,同时还能够保证数据访问的安全性。 本文将介绍如何结合 SQLite 数据库、ContentProvider、ContentResolver 和 UriMatcher 实现一个完整的应用数据共享系统,并通过一个具体的示例进行详细说明。 2. 基本概念2.1 SQLite 数据库SQLite 是 Android 中推荐的本地数据库,它是一个轻量级的关系型数据库管理系统。SQLite 可以嵌入到应用中,支持 SQL 查询、数据持久化存储。 优点:开销小、无需服务器,适合单机应用。 缺点:功能相对较简单,适用于小型应用和中小规模的数据存储。 2.2...
RecycleView使用示例
🚀 RecyclerView 进阶优化指南相比之前的版本,这次的改进包括: ✅ 使用 DiffUtil 优化数据更新(避免 notifyDataSetChanged()) ✅ 使用 ViewBinding 简化 ViewHolder 代码 ✅ 封装 Adapter 支持 MutableList(支持增删改查) ✅ 优化 onClick 事件,让 RecyclerView 更易扩展 ✅ 支持 Grid/瀑布流/线性布局 1️⃣ 添加 RecyclerView 依赖确保你的 build.gradle 添加了: 1234dependencies { implementation 'androidx.recyclerview:recyclerview:1.3.2' implementation 'androidx.viewbinding:viewbinding:7.3.1' // 使用 ViewBinding} 2️⃣ 在 activity_main.xml 中添加...
ContentResolver的增删改查方法示例
Android 中 ContentResolver 的增删改查详解ContentResolver 是 Android 提供的 API,用于在不同应用程序之间访问和操作数据,通常与 ContentProvider 一起使用。它提供 增(insert)、删(delete)、改(update)、查(query) 操作,常见于访问系统数据库(如通讯录、媒体库等)或应用自定义的数据库(如日记本、笔记等)。 📌 使用 ContentResolver 的步骤 确定 ContentProvider 提供的数据 URI(content:// 格式) 获取 ContentResolver 对象 执行增、删、改、查操作 处理权限(如果是访问系统数据) 关闭 Cursor 以释放资源(仅 query 需要) 💡 1. 获取 ContentResolver在 Activity 或 Fragment 中: 1val contentResolver = context.contentResolver 在 Service 中: 1val contentResolver =...
SQLite用法
SQLite 是一种轻量级的嵌入式数据库,在 Android 中用于存储结构化数据。你可以通过 SQLiteOpenHelper 来管理数据库的创建、升级、和版本管理。以下是使用 SQLite 的基本步骤: 1. 创建数据库和表使用 SQLiteOpenHelper 创建数据库以及表结构。这个类会帮助你创建数据库、执行表的升级、降级等操作。 创建 SQLiteOpenHelper 类123456789101112131415161718192021222324252627282930import android.content.Contextimport android.database.sqlite.SQLiteDatabaseimport android.database.sqlite.SQLiteOpenHelperclass MyDatabaseHelper(context: Context) : SQLiteOpenHelper(context, DATABASE_NAME, null, DATABASE_VERSION) { companion...
Room+ViewModel+LiveData一起使用的用法
在 Android 开发中,Room、ViewModel 和 LiveData 经常一起使用,以实现 MVVM 架构,并提供持久化数据存储、生命周期感知的数据管理和自动更新 UI 的能力。 📌 1. 主要作用 组件 作用 Room(数据库) 提供 SQLite 的抽象层,管理本地数据存储 ViewModel 管理 UI 相关的数据,确保数据在配置变更(如旋转屏幕)时不会丢失 LiveData 观察数据变化,并在 UI 组件生命周期内自动更新 🚀 2. 使用 Room + ViewModel + LiveData 的完整示例📌 功能:我们实现一个简单的待办事项(ToDo List)应用,可以: 增删查改任务,数据存储在 Room 数据库中。 使用 LiveData 让 UI 自动更新,而不需要手动刷新。 ViewModel 负责管理数据,避免 Activity 直接操作数据库。 📌 3. 创建 Room 数据库(1)定义 Entity(数据库表)123456789import androidx.room.Entityimport...
ViewModel用法
ViewModel 是 Android 架构组件之一,用于管理 UI 相关的数据,并在 配置更改(如屏幕旋转)时保持数据不丢失。 🔹 1. 添加 ViewModel 依赖在 build.gradle.kts(模块级)中添加: 123dependencies { implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2")} 🔹 2. 创建 ViewModel(1)基础 ViewModel123456789import androidx.lifecycle.ViewModelclass CounterViewModel : ViewModel() { var count = 0 // ViewModel 变量(Activity 重建后不会丢失) fun increment() { count++ }} 🔹 3. 在 Activity/Fragment...
Room用法
Room 是 Android 官方推荐的数据库框架,它是 SQLite 的抽象封装,提供了更便捷的数据库操作方式,支持 Kotlin 协程和 LiveData。以下是 Room 的基本使用方法: 1. 添加 Room 依赖在 build.gradle.kts(模块级)中添加 Room 相关依赖: 12345678dependencies { val room_version = "2.6.1" // 确保使用最新版本 implementation("androidx.room:room-runtime:$room_version") kapt("androidx.room:room-compiler:$room_version") // 用于注解处理器 implementation("androidx.room:room-ktx:$room_version") // 支持 Kotlin 协程} 如果项目使用 Kotlin Symbol...
startActivity和registerForActivityResult的用法
在 Android Kotlin 开发中,startActivity 和 registerForActivityResult 是启动新 Activity 并处理返回结果的两种方式。 1. 使用 startActivitystartActivity 适用于 不需要获取返回值 的情况,例如从 MainActivity 跳转到 SecondActivity: 示例:启动新 Activity12val intent = Intent(this, SecondActivity::class.java)startActivity(intent) 如果你需要传递数据: 1234val intent = Intent(this, SecondActivity::class.java).apply { putExtra("key", "Hello, SecondActivity!")}startActivity(intent) 在 SecondActivity 中获取: 1val data =...
Retrofit用法示例
Retrofit 使用指南 Retrofit 是 Android 上最常用的网络请求库之一,它简化了 HTTP 请求的处理,支持 GET、POST、PUT、DELETE 等请求方式,并且可以配合 Gson、Moshi 等解析 JSON 数据。 1. 添加依赖在 build.gradle (Module 级) 中添加: 1234dependencies { implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:converter-gson:2.9.0' // Gson 解析 JSON} 2. 创建 API 接口定义 API 接口,例如获取用户信息: 12345678910111213141516171819202122232425import retrofit2.Callimport retrofit2.http.GETimport...
CMD命令大全
CMD 命令大全:从入门到精通命令提示符(CMD)是 Windows 操作系统中的命令行界面,允许用户通过输入命令来执行各种任务。它是一个强大的工具,适用于系统管理、网络配置、文件操作等多种场景。本文详细介绍了常用的 CMD 命令,帮助你从入门到精通 CMD。不过也可以直接打help寻找命令的。 [参考来源](CMD 命令大全:从入门到精通_cmd命令-CSDN博客) 目录 CMD 基础 文件和目录操作命令 系统信息获取命令 网络配置命令 磁盘和文件系统操作命令 批处理文件 环境变量 CMD 高级技巧 常见问题与解决方案 总结 CMD 基础1.1 打开 CMD在 Windows 中,可通过以下方式打开命令提示符: 按 Win + R,输入 cmd,然后按 Enter。 在开始菜单中搜索 “cmd” 或 “命令提示符”。 1.2 常用命令格式CMD 命令通常遵循以下格式: 1命令 [参数] 例如: 1dir /w 其中 dir 是命令,/w 是参数。 文件和目录操作命令2.1 查看当前目录使用 cd 命令显示当前工作目录的路径: 1cd 2.2...