Android Development
In this article, we focus on how the dispose system works in RxJava.
First, let’s take a look at the Disposable interface.
public interface Disposable { void dispose(); boolean isDisposed(); } Not much going on here, basically it says a Disposable can be disposed.
First example we are going to examine is:
Observable.interval(1, TimeUnit.SECONDS) If you click through the code, the implementation is actually this class ObservableInterval.
First let’s look at the constructor of this class:
Let’s see what makes RxJava tick.
RxJava is complex, so I will have to (overly) simplify things at places. All of this is just trying to help you to get a better picture of how RxJava is implemented.
Let’s go.
Let’s start with the Single, it’s just an interface with one method:
public interface Single<T> { void subscribe(SingleObserver<T> observer); } So a Single is just a thing that can be subscribed.
It all started from a message sent by my cousin in our family group chat one day.
He posted some of those harder 24 problems, and I couldn’t solve any of them.
(If you don’t know what is this 24 game is all about, here you can read it https://en.wikipedia.org/wiki/24_game)
So, I decided to write a program to help me. And that program turned into a mobile game eventually.
I’m learning how the nested scrolling machanism works on Android, but couldn’t really find any in-depth material. So I turned into the Chinese community, and found this incredible article. It is very long and detailed to death, I don’t really have time to go through it all. I find the first half, a handmade SimpleNestedScrollView to be quite interesting, let me put that part in English here.
Understand the problem If you have a ScrollView inside another ScrollView(same scrolling direction, both vertical or horizontal), then what to expect of the scrolling behaviour?
How the view system in Android handles touch events? Let’s try to understand it by designing it from scratch ourselves!
(This is not my original but a summary of this https://juejin.cn/post/6844903761052188679)
Let’s do this by coming up a series of requirements (from naive to sophisticated) and see how we can design the logic to fulfill them.
Requirement 1 In a nested view hierachy, only the most inner view can handle events.