Java 如何将活动传递给ViewModel?
我有一个方法,从用户那里请求权限。我将其放置在ViewModel中以使其成为背景,但为了运行它,我必须将Java 如何将活动传递给ViewModel?,java,android,mvvm,Java,Android,Mvvm,我有一个方法,从用户那里请求权限。我将其放置在ViewModel中以使其成为背景,但为了运行它,我必须将活动传递给shouldShowRequestPermissionRegulation方法。我该怎么做?将代码放在ViewModel中,这需要android上下文,这不是一个好主意。ViewModel的目的与所有的android组件过于分离。如果您试图通过在viewModel中传递activity的上下文来强行使其工作,那么如果您不小心,就会泄漏上下文 一个好的解决方案是了解哪些代码应该依赖于活
活动
传递给shouldShowRequestPermissionRegulation
方法。我该怎么做?将代码放在ViewModel
中,这需要android
上下文,这不是一个好主意。ViewModel
的目的与所有的android组件
过于分离。如果您试图通过在viewModel
中传递activity的上下文
来强行使其工作,那么如果您不小心,就会泄漏上下文
一个好的解决方案是了解哪些代码应该依赖于
活动
,哪些应该放在视图模型
中。如果我们谈论的是授予权限
,那么这听起来像是应该存在于活动
类中的东西,因为活动
有API
来处理权限请求和管理用户的响应,即权限被拒绝或不被拒绝“如何将活动传递给ViewModel?”“这不是个好主意。如果viewmodel确定需要向用户请求权限,请让viewmodel发出活动观察到的事件。活动会在收到该事件后请求权限。哦,好吧,我在这里读到了一些关于在使用MVVM时请求权限的问题,很多答案都是关于在视图模型中这样做的。谢谢,我将再次深入探讨该主题。可以在viewmodel中检查您是否需要权限。实际上请求权限是UI的责任。好的,谢谢。(非常感谢。)