Я использую rx kotlin недавно и еще не все понял. Я пытаюсь перебрать список запросов и выполнить их один за другим. в этом списке у меня есть специальная строка, которая когда-то была достигнута, я хочу разорвать цикл и выполнить другую функцию
как я могу сделать это в приведенном ниже примере?
fun runQueries() {
Observable.fromIterable(queriesTemp)
.subscribeOn(Schedulers.computation())
.doOnNext { query ->
if (query.contains("COMPLETION OF SDF QUERIES")) {
if (loginStatus == StaticVariables.FT_CASE_NEW_LOGIN) {
tasksQueriesTemp = arrayOfNulls(queries.size - queries.indexOf(query))
System.arraycopy(queries, queries.indexOf(query), tasksQueriesTemp, 0, tasksQueriesTemp!!.size)
}
// break the loop here
runOtherQueries()
break
}
if (!TextUtils.isEmpty(query)) {
mDatabase.execSQL(query, false, "")
}
action(tasksQueriesTemp!!.indexOf(query))
}
.doOnComplete { executeOtherUpdates(tasksQueriesTemp) }
.observeOn(AndroidSchedulers.mainThread())
.subscribe()
}
fun runOtherQueries() {
}
observeOn
вниз (или вообще не иметь его), потому что вы можете получитьNetworkOnMainThreadException
с этой настройкой. - person akarnokd   schedule 13.11.2018