- New:
AndroidSchedulers.reset()
allows clearing the scheduler cache such that the next call toAndroidSchedulers.mainThread()
will ask theRxAndroidSchedulerHook
to re-create it. This API is experimental to matchSchedulers.reset()
in RxJava. - RxJava dependency now points at v1.1.6.
- Rewrite the Android-specific schedulers (main thread or custom) to greatly reduce allocation and performance overhead of scheduling work.
HandlerScheduler.create
has been deprecated in favor ofAndroidSchedulers.from(Looper)
as aLooper
is the actual mechanism of scheduling on Android, notHandler
.- Fix: Correct the behavior of
AndroidSchedulers.mainThread()
to only invoke the registeredRxAndroidSchedulersHook
for creating the main thread scheduler and to cache the result instead of invoking it every time. This behvior change eliminates a performance overhead and brings behavior in line with RxJava. If you were relying on the ability to change the main thread scheduler over time (such as for tests), return a delegating scheduler from the hook which allows changing the delegate instance at will. - RxJava dependency now points at v1.1.4.
RxAndroidPlugins.reset()
is now marked as@Experimental
to match the RxJava method of the same name and behavior.
- New:
MainThreadSubscription
utility class runs itsonUnsubscribe
action on the Android main thread. This aids in adding tear-down actions which must be executed on the main thread without having to deal with posting to the main thread yourself. - Fix: Lazily initialize
mainThread()
scheduler so that no Android code is run when overridden. This allows unit tests overriding the implementation to work correctly. - RxJava dependency now points at v1.1.0.
- Fix: Correctly check
isUnsubscribed()
state inHandlerScheduler
's worker before scheduling more work. - Fix: Eliminate a potential race condition in
HandlerScheduler
to ensure any posted work will be canceled on unsubscription.
Initial stable release!
In order to provide a library that no project using RxJava would hesitate to depend on, the decision was made to remove the APIs which were not absolutely fundamental to all apps. That is what's contained in this release.
Functionality which was previously part of this library is being explored in separate, modular libraries:
LifecycleObservable
: https://github.com/trello/RxLifecycleViewObservable
andWidgetObservable
: https://github.com/JakeWharton/RxBinding
This allows for a simpler process of design, development, and experimentation for the best ways to provide features like hooks into the lifecycle, binding to UI components, and simplifying interaction with all of Android's API. Not only can these projects now have their own release schedule, but it allows developers to pick and choose which ones are appropriate for your application.
Applications using the various APIs which were previously in this library do not need to update immediately. Due to the number of APIs removed, switching to 1.0 and the use of these third-party libraries should be done gradually.
Breaking changes:
AndroidSchedulers.handlerThread()
is nowHandlerScheduler.from()
.- All other APIs have been removed aside from
AndroidSchedulers.mainThread()
,RxAndroidPlugins
, andRxAndroidSchedulersHook
.
- New:
RxAndroidPlugins
and itsRxAndroidSchedulersHook
provides a mechanism similar toRxJavaPlugins
(and itsRxJavaSchedulersHook
) for changing the scheduler returned fromAndroidSchedulers.mainThread()
as well as a callback for each subscription on anyHandler
-based scheduler. - Fix: Ensure errors are properly propagated from
ContentObservable.fromCursor
. - Fix:
LifecycleObservable
now correctly unsubscribes from its sources.
Breaking changes:
- Users of
AppObservable.bindFragment
with a support-v4Fragment
should now usebindSupportFragment
.
This release has some breaking changes:
rx.android.observables.AndroidObservable
has changed torx.android.app.AppObservable
;ViewObservable
has moved fromrx.android.observables
torx.android.view
- (as part of RxJava's breaking changes)
collect
has changed
This release adds a number of new operators:
- Pull 25 Add operator to monitor SharedPreference changes
- Pull 22 Add view state event types to streamline ViewObservable
- Pull 20 Add OperatorAdapterViewOnItemClick to observe OnItemClick events in AdapterViews
Initial release outside the RxJava core project, no changes.