class MyRecyclerViewHolder : RecyclerView.ViewHolder {
fun onBind(data: Data) {
// launching an asynchronous action
}
}
Мне нужно отменить действие asyn c, которое я запускаю, когда onBind(..)
вызывается снова в том же экземпляре MyRecyclerViewHolder
, или если MyRecyclerViewHolder
готов к G C 'd по какой-либо причине.
Очевидно, я могу определить, когда onBind(..)
вызывается снова, но как я могу зарегистрироваться, чтобы узнать, когда экземпляр MyRecyclerViewHolder(..)
готов для G C, чтобы я мог отменить asyn c action?
EDIT: Другой способ подумать об этом - представить, что ViewHolder
имеет следующий API:
interface ViewHolder {
// because you have constructor access, there's no need for `onCreate(..)`
// may be called multiple times
fun onBind(data: Data)
fun onDestroy() // called once when it is no longer relevant
}
Как я могу получить уведомление, что мой ViewHolder
должен быть «уничтожен» - он больше не актуален для пользовательского интерфейса?