Допустимо ли создавать Rx Observables в пользовательском подклассе приложения. Причина этого в том, что я могу создать BehaviorSubject внутри приложения и каждые 10 минут запрашивать изменения с сервера, каждое действие или фрагмент, который подписывается на этот Observable, получит только последнее состояние изменений.
Вопрос в том, можно ли считать эту архитектуру безопасной с точки зрения управления жизненным циклом приложений и простой в использовании?
class CustomApplication extends Application {
...
BehaviorSubject<Friends> mFriends = new BehaviorSubject<Friends>;
public void createObservables() {
Observable.create(new Observable.OnSubscribe<Friends>() {
public void call(Subscriber<?> s) {
while(true) {
mFriends.onNext("randomFriendN");
sleep(10sec);
}
}
})
.subscribeOn(Schedulers.newThread())
.subscribe(new Observer<List<NewsCategory>>() {
public void onNext(Friends f) { //empty }
});
}
public BehaviorSubject<Friends> getFriends() {
return mFriends;
}
}
ОБНОВЛЕНИЕ: Каждый раз, когда создается новое действие и оно хочет получить данные, оно может получить его в ApplicationContext BehaviorSubject, а затем подписаться на него, и Subject будет выдавать последнее переданное значение; Почему я хочу сделать так? Например. Допустим, у вас есть новости, вы получили новостную ленту и хотите запустить фоновую задачу, которая извлекает полное содержимое новости, в этом случае я могу начать извлекать данные, пока вы прокручиваете список новостей, и когда вы нажимаете подробную активность, мы можем показать его из уже загруженного или просто скачайте его.