Правильный способ утилизации Rx Disposable в презентере при смене ориентации

ASCII - это файл TEXT, поэтому вы должны использовать Readers для чтения. Java также поддерживает чтение из двоичного файла с помощью InputStreams . Если прочитанные файлы огромны, вы можете использовать BufferedReader поверх FileReader , чтобы улучшить производительность чтения.

Пройдите через в этой статье о том, как использовать Reader

Я также рекомендую вам скачать и прочитать эту замечательную (но бесплатную) книгу под названием Мышление на Java

В Java 7:

new String (Files.readAllBytes (...)) или Files.readAllLines (...)

В Java 8:

Files.lines (..). forEach (...)

0
задан badadin 15 January 2019 в 18:19
поделиться

1 ответ

Наконец-то нашли решение. Теперь я распоряжаюсь Disposable только нажатием кнопки «назад» и не распоряжаюсь ею на экране без присмотра. Итак, я добавил метод к базовому докладчику:

...

/**
 * Method that should be called on back button click in fragment
 * It's planned that all [Disposable] objects will be disposed in implementation of this method
 * */
abstract fun onBackButtonClicked()

...

Докладчик:

...

override fun onBackButtonClicked() {
    getChartDataDisposable?.dispose()
}

...

Просмотр (фрагмент):

...

override fun onBackButtonClicked() {
    presenter.onBackButtonClicked()
    navigator.back()
}

...

И некоторая логика для перехвата нажмите на аппаратная кнопка возврата:

Интерфейс:

interface OnBackButtonClickListener {
    fun onBackButtonClicked()
}

Базовый фрагмент:

abstract class BaseFragment : Fragment(), OnBackButtonClickListener {

    ...

    override fun onResume() {
        super.onResume()
        (ctx as MainActivity).currentBackPressListener = this@BaseFragment
    }

    override fun onPause() {
        super.onPause()
        (ctx as MainActivity).currentBackPressListener = null
    }

    ...
}

Наконец, переопределен метод onBackPressed () в действии:

class MainActivity : AppCompatActivity() {

    ...

    var currentBackPressListener: OnBackButtonClickListener? = null

    ...

    override fun onBackPressed() {
        currentBackPressListener?.onBackButtonClicked()
    }

    ...
}
0
ответ дан badadin 15 January 2019 в 18:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: