Я использую поток в своем приложении, но у меня есть некоторые проблемы с ним, попадающим в логи c дважды с отчетливым или 8/9 раз без него. Я использую Livingata как поток с привязкой данных.
xml
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/amount_edit"
isFocused="@={viewModel.amountFocused}"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="numberSigned"
android:maxLines="1"
android:text="@={viewModel.amount}" />
code
private val amountFlow = amount.asFlow().mapLatest {
Timber.d("FLOW : amountFlow ${it}")
if (it != null && it.length >= MIN_QUERY_LENGTH) {
it.toIntOrNull()
} else {
null
}
}.distinctUntilChanged()
этот оператор отладки вызывается дважды с использованием diverUntilChanged () или 8-9 раз без него. Я не совсем уверен, почему, но этот поток объединяется с другим потоком, и он называет мою другую логику способом для многих.