ReactiveX / RxAndroid

RxJava bindings for Android

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Bug or Help Long running observable in background crashes app

iplusMario opened this issue · comments

Hi I am using rxjava library version 3.0.0.
I would like to achive that the long running web call is executed even when the app goes in background without crashing the app.
When i execute the following code and in the middle of the execution I am pressing home button so that the app stops and goes into the background i get the FAILED BINDER TRANSACTION error and app crashes.

Is this the normal behavior or am I using it wrong??

           Observable.fromCallable(() -> {
               // long running web call
               return true;
           }).subscribeOn(Schedulers.io())
           .observeOn(AndroidSchedulers.mainThread())
           .subscribeWith(new DisposableObserver() {
                    @override
                     public void onNext(@nonnull Boolean aBoolean) {
                          Program.ShowDialogConfirm(requireActivity(), "Title", "text", null);
                    }

                    @Override
                    public void onError(@NonNull Throwable e) {
                        Program.ShowDialogConfirm(requireActivity(), "Error", e.getMessage(), null);
                    }

                    @Override
                    public void onComplete() {

                    }
                });

following error

E/JavaBinder: !!! FAILED BINDER TRANSACTION !!! (parcel size = 21221784)
W/ActivityThread: Bundle stats:
W/ActivityThread: android:viewHierarchyState [size=2560]
W/ActivityThread: android:views [size=2456]
W/ActivityThread: 0x7f08010d [size=1104]
W/ActivityThread: android:support:fragments [size=21218328]
W/ActivityThread: PersistableBundle stats:
[null]
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
Process: xxxxx, PID: 11535
java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 21221784 bytes
at android.app.ActivityThread$StopInfo.run(ActivityThread.java:3963)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6528)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Caused by: android.os.TransactionTooLargeException: data parcel size 21221784 bytes
at android.os.BinderProxy.transactNative(Native Method)
at android.os.BinderProxy.transact(Binder.java:766)
at android.app.IActivityManager$Stub$Proxy.activityStopped(IActivityManager.java:4654)
at android.app.ActivityThread$StopInfo.run(ActivityThread.java:3947)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6528)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

Please don't cross post.

ReactiveX/RxJava#7011