相关疑难解决方法(0)

ViewModel的责任

我正在构建一个工具,其目标是基于一些参数下载文件.

第一步是设置(或检索)这些参数.

FileDownloadsManager检索不同的参数集(比如说通过配置文件):它确切地知道要下载正确文件的参数.

那些参数存储在一个类中,我有一个这个类的实例列表.

这意味着我可以使用多个可能的参数集下载我的文件.

在这些ParameterSets周围,我构建了ParametersSetsViewModels,以便我可以在列表中显示它们,并添加一些View-Only属性.在内部,ParametersSetsViewModels具有对底层ParametersSets的引用,这些ParametersSets用作View Model成员的源.

现在,当我选择我的参数集时,我希望下载相关文件.

这应该是谁的责任?

我有这种感觉,如果ViewModel过于活跃,通过一个返回下载文件的方法,这将违背MVVM模式; 你对此有什么看法 ?

奖励:使用BackgroundWorkers或WebClient的异步方法在后台下载应该是可行的.

architecture mvvm

8
推荐指数
1
解决办法
4417
查看次数

如何检查权限是否授予ViewModel?

我需要询问联系人的权限,当应用程序启动时,我要问,在ViewModel部分,我需要调用需要权限的方法。我需要检查权限是否由用户授予,然后再调用,但是要检查权限,我需要具有访问活动。而在我的ViewModel中,我没有对Activity的引用,也不想拥有,如何解决该问题?

permissions android android-activity android-mvvm

5
推荐指数
2
解决办法
3170
查看次数

如何在 Android 中手动正确重新加载 liveData?

我的应用程序是一个基本的新闻应用程序,它从 Guardian API 提供的 JSON 中获取数据。我使用原始 java 代码(不使用改造)解析了 JSON 中的值。

然后我在 NewsFeedViewModel 类中获取 LiveData,该类扩展为 AndroidViewModel。

然后在片段中,我将列表提交给适配器。

这些是我面临的问题:1)首先,如果要显示的文章设置为 10,那么如果我转到设置并将其更改为 2,那么最后 8 篇文章就会消失,但空白/间隙是不去。我仍然可以在空白处滚动。2)如果我不断改变文章数量值,那么应用程序将变得不可滚动。

我还有一些疑问,当发生 swipeToRefresh 时如何手动刷新数据?

这是我的项目 github 链接:https ://github.com/sdzshn3/News24-7-RV

应用程序中发生的问题的视频示例:https://drive.google.com/file/d/1gr_fabS2rqREuyecvGSG3IQ_jXOowlW7/view ?usp=drivesdk

java android refresh viewmodel android-livedata

5
推荐指数
2
解决办法
1万
查看次数