在
本教程中,我将向您展示如何使用数据存储首选项将数据保存在您的Android应用程序中,而不是具有共享偏好的旧方法。
我看到很多人不知道如何使用数据存储,他们认为这太困难了,所以在本文中,我将解释数据存储中的所有内容,以使您更容易,因此请保存此帖子并专注于我ð
。
什么是数据存储偏好?
数据存储是一种数据存储解决方案,它允许您使用协议缓冲区存储键值对或键入对象。数据存储使用Kotlin Coroutines和Flow将数据异步,一致和交易存储。
我知道您不了解上下文,但现在开始!
让我们现在开始½
1。在Android Studio上创建一个新项目。
2。打开build.gradle
文件并添加库实现:
查看库的最新版本
3。例如,创建一个名为DataStoreManager
的新类,并创建init of dataStore:
我们需要在这里停止以了解以前的代码正在发生的事情。
查看此图像,让我们解释一下:
1-这是我们将使用它在此数据存储名称上进行操作的数据存储pref的名称。
2-第二个是数据存储名称,例如,它就像SQL一样的数据库名称,我们将使用此名称存储数据。
4。现在,让我们创建将在我们创建的数据存储中保存数据的密钥:
在这里,我已经为商店用户名创建了两个键,另一个将存储电子邮件地址。
现在我们准备在活动/片段中使用数据存储。
我创建了一个简单的应用程序,其中包含两个EditTexts和两个按钮和两个将显示保存数据的文本视图,您可以在GitHub上找到示例项目。
5。现在打开您的活动并创建一个暂停乐趣,该乐趣将使我们的数据从EditTexts中保存:
等待,这里发生了什么?
首先,数据存储仅在suspend fun
或CoroutineScope
内运行,所以这就是为什么我创建了暂停乐趣的原因。
之后,我已经创建了我们通过致电以前声明的用户实例:
user.edit { usrData ->
}
usrdata是一个价值参数,您可以选择任何名称,因为它是lambda表达式。
和在user.edit
表达式内部,我添加了我们之前创建的键,以保存名称和电子邮件:
user.edit { usrData ->
usrData[DataStoreKeys.USER_NAME] = name
usrData[DataStoreKeys.EMAIL] = email
}
现在您已经成功地使用数据存储了数据,这很简单吗?
6。让我们创建一个新功能,可以获取保存的数据并将其显示在我们的UI中:
解释:
正如我们在添加用户实例之前所解释的那样 ?: "none"
检查数据存储返回null是否null检查将返回“无”值。
我们知道,我们可以通过用于保存数据的相同键来检验数据,因此您将再次使用它再次检索数据:
user.data.collect { usrData ->
val name = usrData[DataStoreKeys.USER_NAME] ?: "none"
val email = usrData[DataStoreKeys.EMAIL] ?: "none"
// you can use $name variable or $email anywhere
}
正如我在添加
?: "none"
之前告诉您的那样
7。最后一步是创建将删除保存数据的函数:
解释:
很简单,只需使用用户实例,然后使用user.edit
访问数据存储并调用usrData.clear()
:
user.edit { usrData ->
usrData.clear()
}
您可以在CoroutineScope(Dispatchers.IO)
中使用所有这些功能:
CoroutineScope(Dispatchers.IO).launch {
getUserData() //get data suspend fun
}
这就是今天的全部,感谢您的阅读,请分享并关注更多:)
完整的主动式代码:
资源:
https://developer.android.com/topic/libraries/architecture/datastore