小编pdc*_*cmb的帖子

MVVM 中存储库级别或 Activity 内的 Android 权限?

我正在使用 MVVM clean 架构,需要使用融合位置提供程序获取当前位置,因此在获取当前位置之前,我需要检查用户是否已授予访问位置和互联网的权限。
我正在通过实现数据源从存储库检索位置,但我不确定应该在哪里请求许可。在存储库中,当我请求位置或在活动中时,首先请求许可,然后请求位置?

在第一种情况下,流程将是:
1)User clicks the button(view)
2)Viewmodel requests for location (viewmodel->usecase->repository)
3)Repository checks permissions and requests location
4)Observable is returned which emits location(s) or error if no permission were granted (or other error)

第二种情况:
1)User clicks the button and permission are checked/requested inside activity
2)If permission are granted, viewmodel requests position otherwise view shows an error
3)Repository requests and returns the location

第一种方法对我来说看起来更简单、更符合逻辑。表示层只是请求位置,然后存储库返回位置或错误,但是数据层内的逻辑可能太多了?

android mvvm android-permissions android-mvvm

9
推荐指数
1
解决办法
3096
查看次数

标签 统计

android ×1

android-mvvm ×1

android-permissions ×1

mvvm ×1