Начало работы с RxJava с sqlite
Я нахожусь в процессе изучения RxJava и просмотрел несколько статей и видео. Я полностью осознал, что может предложить RxJava, поэтому я думаю, что в настоящее время понимаю, что такое Reactive Programming.Этот урок от Дэна Лью помог мне немного понять основы использования RxJava. Но я узнал, что чем больше я думал, что полностью понимаю RxJava, тем больше вопросов возникает у меня в голове.
Поскольку я парень, который больше всего учится при написании кода, вот что я пытаюсь сделать. У меня уже есть приложение, которое использует SQLite. Мое приложение имеет 7 круговых диаграмм, которые получают свои данные из курсора базы данных. Каждая круговая диаграмма получает различную строку данных (значения с плавающей запятой) от курсора и генерирует диаграмму в соответствии со своими данными.
Сейчас я пытаюсь использовать RxJava для извлечения данных из базы данных и заполнения диаграммы. Но я не знаю, как RxJava должен взаимодействовать с базой данных. Нужно ли использовать какую-либо дополнительную библиотеку для этого? Потому что я нашелrxjava-JDBC а такжеSqlBrite который, я думаю, должен помочь мне в этом, но действительно ли они мне нужны? Я также нашелвопрос в СО который, кажется, не использует никаких дополнительных библиотек (за исключением, конечно, RxJava), и он, кажется, использует ContentObservable, но я все еще не до конца понимаю. Кроме того, парень, который ответил на его вопрос, даже не использует ContentObservable. И я просто знал, что у Android есть свой собственный класс Observable ... полностью ли он совместим с RxJava? Если нет, то почему же имя?
Кто-нибудь, пожалуйста, помогите мне ...
================================================== ======
В ответ на решение GreyBeardedGeek ниже:
Это мой Callable, который получает данные из SQLite
public class GetIncome implements Callable<Map<String,String>> {
public static final String FILE_NAME = "CGetIncome";
Context myContext;
int year, month;
public GetIncome(Context context, int getYear, int getMonth){
myContext = context;
year = getYear;
month = getMonth;
}
@Override
public Map<String,String> call() throws Exception {
Map<String,String> output = new HashMap<>();
JarControl jc = new JarControl(myContext);
JSONObject getIncome = jc.getIncome(year,month,0,0);
output.put("necessities",getIncome.getString("necessities"));
output.put("savings",getIncome.getString("savings"));
return output;
}
}
И вот как я пытаюсь использовать Callable из моей основной деятельности:
Callable<Map<String,String>> getIncome = new GetIncome(getContext(),2015,9);
Теперь я не знаю, как поместить вызываемый getIncome в Observables. Вы упомянули из Callables в RX должны сделать это ... но на самом деле, как это сделать? В соответствии сэтот урок, который показывает, как использовать Observable.from, поэтому я ожидаю, что смогу использовать Callables, выполнив Observable.fromCallable, но, очевидно, функция не существует Quick googled показал, что .fromCallable следует использовать, выполняя что-то вроде Async.fromCallable (), но, поскольку я очень новичок в RxJava, я могу понять, как создать вызываемый в соответствии с тем, какучебник показывает ...
И извините за мою крайнюю нубность на RxJava