【发布时间】:2016-03-01 09:50:57
【问题描述】:
我有一个用户可以登录的应用程序,每个用户都有不同的个人资料。我们正在为每个配置文件维护单独的数据库、单独的共享首选项和不同的名称。每当我们切换配置文件时,我们都会从相应的 db/shared-preference 中获取数据。
是否有任何 API,例如为多个配置文件维护单个 db/shared-preference - 例如每个配置文件将具有单独的应用程序数据,因此我们无需为每个配置文件创建具有不同名称的单独共享首选项/db。每个配置文件都可以具有相同名称的 shared-preference/db。因此,每个配置文件都有自己的应用数据,但共享首选项/数据库名称相同。
我猜安卓中的账户会有单独的应用数据,但这里我们需要有单独的应用数据用于配置文件。
【问题讨论】:
-
为什么需要单独的数据库?您可以将多个配置文件数据存储在单个数据库或单个表中。
-
@AmanGupta 每个配置文件都有很多表格和共享首选项。假设如果我将 profile_1 的 user_points 存储在共享首选项中,那么我需要为 profile_2 的 user_points 提供不同的名称。这适用于多个配置文件。与表的情况相同。对于同一件事,我需要手动为不同的配置文件提供不同的名称。
-
好吧,也许我无法理解您的整个场景,但您不需要为每个配置文件创建单独的共享首选项。您可以在共享首选项中使用 HashSet 或 JSON 来存储多个配置文件数据。
-
我能想到的一个解决方案是,您可以为您的用户分配一个唯一的用户 ID,并将该用户 ID 用作他所有与个人资料相关的数据库的文件夹。对于 sharedprefs,您可以为名称添加前缀,例如 userid_point。甚至你可以创建一些帮助方法来自动执行此操作,例如 getPointPreference(userid)
-
@AmanGupta 我的重点是为多个配置文件创建具有相同名称的共享首选项或表格。