Наблюдатель не обновляет данные - PullRequest
0 голосов
/ 21 февраля 2019

Я реализую наблюдателя для данных модели;У меня есть 2 активности, которые разделяют эти данные.В первом упражнении я установил модель следующим образом:

public void refreshValue (String id, Data data){
ConnectionModel.getInstance().updateConnection(data);

В модели updateConnection имеет вид:

public class ConnectionModel extends Observable{
//...
  synchronized Connection getConnection() {
    return connection;
  }
  void updateConnection(Data data){
      synchronized (this) {
          connection.setData(data);
      }
      setChanged();
      notifyObservers();
  }
}

Во втором упражнении я установил наблюдателя следующим образом:

public class secondView extends AppCompatActivity implements Observer {
public void observe(Observable o) {
    o.addObserver(this);
}
//...
public void refreshView(){
    Connection connection = ConnectionModel.getInstance().getConnection();       
    heartRate.setText(connection.toString());
}


@Override
public void update(Observable o, Object arg) {
    refreshView();
    Log.d("update", "data is change");
}

Я также пытался использовать LiveData с ViewModel, но результат тот же.

Где я делаю неправильно?

Большое спасибо.

1 Ответ

0 голосов
/ 21 февраля 2019

Вам необходимо добавить SecondView Activity как Observer из ConnectionModel, вызвав:

ConnectionModel.getInstance().addObserver(this);

внутри secondView.

...