Я пытаюсь найти лучший способ завершить действие из ViewModel. Я нашел один способ сделать это, используя объект LiveData и посылая «сигнал».
У меня есть сомнения, что это решение имеет накладные расходы. Это правильное решение или мне следует использовать более точное решение?
Вот действие, демонстрирующее это решение:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val model = ViewModelProviders.of(this).get(MainViewModel::class.java)
model.shouldCloseLiveData.observe(this, Observer { finish() })
}
}
Вот ViewModel:
class MainViewModel(app: Application) : AndroidViewModel(app) {
val shouldCloseLiveData = MutableLiveData()
fun someAction(){
shouldCloseLiveData.postValue(null)
}
}
Подробнее здесь: https://stackoverflow.com/questions/490 ... components