访问共享首选项存储库中的 appcontext(架构)
Accessing appcontext in repository for shared preferences (Architecture)
根据官方指南,我目前正在努力研究 android 平台的架构组件:
在我的应用程序中,我目前需要存储一个字符串列表(名称)并在多个位置(活动和服务)访问它。我想到了 2 种可能的方法:
1) 将它们以逗号分隔存储在共享首选项中。
2) 创建一个实体和房间-table,名称作为唯一列。
我更喜欢第一种方法,因为我只需要将名称作为一个字符串来执行 contains() 操作。为此,使用房间数据库似乎更麻烦。
我的具体问题是:可以将 appcontext 存储在存储库-class(这是一个单例)中吗?或者我是否违反了任何 conventions/architectural 规则?或者实际为此使用空间会更好吗?
如果您想使用组件架构,并且您的 repository
需要与需要 context
的数据源进行通信,例如房间或 SharedPreferences
..您将需要从 AndroidViewModel
扩展您的 ViewModel
,这将为您提供一个 context
,您可以将其传递给您的 repository
,以使用它访问 Room 数据库或 SharedPreferences
.在存储库中使用 context
没有问题,即使它是单例,您已经需要它来访问 Room。
根据官方指南,我目前正在努力研究 android 平台的架构组件:
在我的应用程序中,我目前需要存储一个字符串列表(名称)并在多个位置(活动和服务)访问它。我想到了 2 种可能的方法:
1) 将它们以逗号分隔存储在共享首选项中。
2) 创建一个实体和房间-table,名称作为唯一列。
我更喜欢第一种方法,因为我只需要将名称作为一个字符串来执行 contains() 操作。为此,使用房间数据库似乎更麻烦。
我的具体问题是:可以将 appcontext 存储在存储库-class(这是一个单例)中吗?或者我是否违反了任何 conventions/architectural 规则?或者实际为此使用空间会更好吗?
如果您想使用组件架构,并且您的 repository
需要与需要 context
的数据源进行通信,例如房间或 SharedPreferences
..您将需要从 AndroidViewModel
扩展您的 ViewModel
,这将为您提供一个 context
,您可以将其传递给您的 repository
,以使用它访问 Room 数据库或 SharedPreferences
.在存储库中使用 context
没有问题,即使它是单例,您已经需要它来访问 Room。