根据Android在MVVM设计模式中的建议,ViewModal不得接受View的引用,但在Facebook登录中,我们会通过Activity的onActivityResult()方法获得响应。
因此,如果我们的ViewModal有用于Facebook登录的方法,那么我必须将Activity的引用传递给它,以便我在Activity的onActivityResult()方法中返回结果。
有人会建议如何按照MVVM设计模式处理Facebook登录吗?
最佳答案
ViewModels should not hold a reference to Activities, Fragments, or Contexts.
这意味着您可以在参数中传递 Activity 或上下文,但是不应存储该引用。
在您的 Activity 中调用该函数。
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
yourVm.onActivityResult(requestCode: Int, resultCode: Int, data: Intent?,this)
}
在您的ViewModel中创建一个函数
fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?,activity? : Activity) {
//do your work
}
关于android - 如何在MVVM设计模式中处理Facebook登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57918275/