如何在MVVM设计模式中处理Facebook登录

时间:2019-09-13 06:22:20

标签: android mvvm

按照MVVM设计模式中Android的建议,ViewModal不能接受View的引用,但是在Facebook登录中,我们通过Activity的onActivityResult()方法获得响应。

因此,如果我们的ViewModal具有用于Facebook登录的方法,那么我必须将Activity的引用传递给它,以便我可以通过Activity的onActivityResult()方法返回结果。

有人会建议如何按照MVVM设计模式处理Facebook登录

1 个答案:

答案 0 :(得分:0)

  

ViewModels不应保留对活动,片段或上下文的引用。

这意味着您可以在参数中传递活动或上下文,但不应存储该引用。

在ViewModel中创建一个函数

 fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?,activity? : Activity) {

//do your work
}

并在您的活动中调用该函数。

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {

     yourVm.onActivityResult(requestCode: Int, resultCode: Int, data: Intent?,this)
}