我已经阅读了多篇适用于Android的干净架构教程,但它们都具有非常基本的结构和简单的网络调用,这让我感到困惑。
我想知道的是,处理加速器、地理围栏、位置、短信等代码应该放在哪里?我的初步想法是将它们放在单独的仓库中。但由于这些是分开的长时间运行的过程,可以启动或停止,所以感觉不太对。我尝试将这些类从仓库重命名为服务,只是为了更清楚地表达意图。但仍然感觉有点不对。有什么好的替代方案吗?
为了能够接收发送的短信状态,我需要注册一个接收器。谁应该负责这个?当SmsRepository收到发送短信的调用时,它自己应该注册接收器、发送消息并释放接收器,还是UseCase首先要检查SmsRepository是否启动,如果没有,则启动它,因此注册接收器,然后调用sendSms()方法?还是可能应该采取另一种方法,在应用启动时注册接收器并在关闭时注销接收器?
这是一个适当的包结构吗?
编辑:4. 如果您希望不断监听服务器结果,该怎么办?您是否直接从ViewModel订阅仓库,还是在它完成后保持调用相同的UseCase(其目的是获取一次结果)?我对UseCase的理解是它只返回单个结果,不应该是可订阅的。