Как использовать наблюдателя ViewModel & LiveData в нескольких действиях? - PullRequest
0 голосов
/ 27 мая 2019

Я разработал шаблон приложения по MVVM и зависимости google jetpack. У меня есть SampleViewModel, у которого есть метод, который мне нужен наблюдатель. У меня есть два View с именами FActivity и SActivity, для начала я создал экземпляр SampleViewModel в FActivity и подписал наблюдателя на LiveData с помощью ViewModel:

class FActivity : Acivity{
   onCreate(){
      val vm = ViewModelsProviders
              .of(this)
              .get(SampleViewModel::class.java)

         vm.liveData.observe(this, Observer { basic ->
                Log.i("TAG", "Yes I received from SActivity");
         });)
   }
}

сейчас я сделаю операцию enqueue() метод в SActivity и наблюдатель в FActivity

class SActivity : Acivity{
   onCreate(){
      val vm = ViewModelsProviders
              .of(this)
              .get(SampleViewModel::class.java)

         vm.enqueue();
}

но я отслеживаю операцию создания экземпляра ViewModelProviders, который обновляет экземпляр ViewModel и не наблюдает до FActivity. Теперь я лучше знаю, что такое ручка?

1 Ответ

1 голос
/ 27 мая 2019

Но нет ли способов деятельности?

Правильно.В разработке Android Jetpack предполагается, что тесно связанные экраны пользовательского интерфейса будут реализованы как фрагменты, и они могут иметь общий ViewModel.Вы можете выполнять несколько действий, но они должны быть очень слабо связаны с другими действиями в приложении, в тех случаях, когда нет необходимости в общем ViewModel (например, основное действие и действие на экране «Справка»).

...