Установка liveData из пользовательского класса приложения
Я добавляю LiveData для представления статуса. Это класс ViewModel:
public class MyViewModel extends AndroidViewModel {
// Create a LiveData with a Status
private MutableLiveData<Integer> status;
public TsViewModel(@NonNull Application application) {
super(application);
}
public MutableLiveData<Integer> getCurrentStatus() {
if (status == null) {
status = new MutableLiveData<Integer>();
}
return status;
}
void setCurrentStatus(int stat) {
status.setValue(stat);
}
}
Текущий статус устанавливается в машинном коде. Я хочу, чтобы этот статус был обновлен в пользовательском классе приложения. Но похоже, что я не могу получить viewModel из этого класса:
public class MyApplication extends Application {
public static Context context;
public void onCreate() {
super.onCreate();
MyApplication .context = getApplicationContext();
model = new ViewModelProvider(this).get(MyViewModel.class); /* <---- this fails */
}
}
Идея действительно состоит в том, чтобы установить этот статус как можно раньше, и чтобы это знал любой наблюдатель. Как я могу этого добиться?