Observable стандартными средствами - скажем, какое-то рекурсивное чтение файла с очень хитрой структурой и вытаскиванием из него данных. Но сделать Observable из него нужно (одноразовый), при этом держать данные в памяти нельзя(очень много данных), их необходимо считывать из файла, сразу же обрабатывать какими-то операторами и забывать. Гарантирован всегда максимум один сабскрайбер. Как сделал я - создаю PublishSubject, его возвращаю в качестве Observable. На сабжект навешиваю .doAfterSubscribe, который при подписке форкается, начинает читать файл и кормить сабжект данными. Таким образом, чтение начинается только при подписке. Если при чтении возникла ошибка - у сабжекта вызывается onError. Использовать ReplaySubject не получится в силу большого кол-ва данных. Насколько каличен такой вариант и какие другие?
rxjava что ли?
Если это работает - ты все сделал правильно
Обсуждают сегодня