在Android应用程序中处理多个配置文件

在Android应用程序中处理多个配置文件,android,accounts,profiles,Android,Accounts,Profiles,我有一个应用程序,用户可以登录,每个用户有不同的配置文件。我们为每个配置文件维护单独的数据库、单独的共享首选项和不同的名称。无论何时切换配置文件,我们都会从各自的db/共享首选项获取数据 是否存在类似于为多个配置文件维护单个db/共享首选项的API?类似于每个配置文件都有单独的应用程序数据,因此我们不需要为每个配置文件创建具有不同名称的单独共享首选项/db。每个配置文件可以具有相同名称的共享首选项/db。因此,每个配置文件都有自己的应用程序数据,但共享首选项/db名称相同 我猜android中的

我有一个应用程序,用户可以登录,每个用户有不同的配置文件。我们为每个配置文件维护单独的数据库、单独的共享首选项和不同的名称。无论何时切换配置文件,我们都会从各自的db/共享首选项获取数据

是否存在类似于为多个配置文件维护单个db/共享首选项的API?类似于每个配置文件都有单独的应用程序数据,因此我们不需要为每个配置文件创建具有不同名称的单独共享首选项/db。每个配置文件可以具有相同名称的共享首选项/db。因此,每个配置文件都有自己的应用程序数据,但共享首选项/db名称相同


我猜android中的帐户将有单独的应用程序数据,但这里我们需要为配置文件提供单独的应用程序数据。

遗憾的是,这里没有快捷方式

在数据库中,您需要在每个具有特定于概要文件的数据实体的表中为用户名/帐户名(或以何种方式标识概要文件)设置一列。表上的所有查询都需要在WHERE子句中包含概要文件名称,以获取该概要文件的数据


在首选项中,可以将配置文件名称附加到首选项键,使其成为该配置文件的首选项。在我的应用程序中,我创建了一个静态的
getKey()
方法,以获取当前用户名并将其附加到密钥,然后返回该密钥。

为什么需要单独的数据库?您可以在单个数据库或单个表中存储多个配置文件数据。@AmanGupta每个配置文件都有许多表和共享首选项。假设我将概要文件_1的用户_点存储在共享首选项中,那么我需要为概要文件_2的用户_点指定不同的名称。这适用于多个配置文件。表的情况也是如此。出于同样的原因,我需要手动为不同的配置文件指定不同的名称。好吧,也许我无法理解您的整个场景,但您不需要为每个配置文件创建单独的共享首选项。您可以在共享首选项中使用哈希集或JSON来存储多个配置文件数据。我认为一个解决方案是,您可以为您的用户分配一个唯一的用户id,并将该用户id用作他所有与配置文件相关的数据库的文件夹。对于SharedPref,您可以在名称前面加上userid\u point这样的前缀。甚至你也可以创建一些助手方法来自动完成这项工作,比如getPointPreference(userid)@AmanGupta我的重点是为多个配置文件创建共享的首选项或同名的表。