在基于导航的应用程序中存储复杂数据的位置

Where to store complex data in the navigation-based application

我有一个应用程序在页面之间有很多我需要的数据,例如: 设计设置、用户参数、扫描仪访问、打印机队列、在一页上计算和形成的多项内容将用于其他页面。

该应用程序的总体思路是:您在每个页面上快速 select 选项或输入数据,然后它形成订单,发送并打印。

我有几个不同的存储库,但我不知道如何从目标片段中授予对它们的访问权限。

我是 Android 的新手,所以我试图找到构建此系统的最佳方法,但未能成功。 目前我发现了什么:

我尝试 google 关于这个主题很多,但所有答案看起来像:"here's how to pass a simple string between the screens",人们如何组织更复杂的应用程序?也许有一种更复杂的方法可以将应用程序状态拆分为我所缺少的某种服务或其他术语。

你能帮我理解状态和数据方面的正确应用程序架构吗?

我认为您的解决方案介于会话实现(在内存中或使用 Room)和 ViewModel 之间,用于屏幕依赖于另一个的部分。如果它是一个流程,我建议您使用一种方法在片段之间共享 ViewModel,例如 this or this(我使用并推荐),然后将其设置为流程其余部分的状态,导致共享数据在某些配置更改后仍然存在。如果您需要在整个应用程序执行过程中保留设置,您应该使用简单的 class 单例或 Room 实现来实现会话。