Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Activity is null in preDestroyView in childRouter hosted Controller #208

Closed
chris6647 opened this issue Jan 20, 2017 · 2 comments
Closed

Comments

@chris6647
Copy link

Hello,
I am experiencing a NPE when using @sockeqwe 's Mosby-Conductor, as the activity returned in the preDestroyView callback is null, when done to a Controller hosted in a childRouter.
The error seems to have been introduced in 2.0.5 (does not occur in 2.0.4), and can be reproduced in the demo app by:

  1. Setting the developer setting "Don't keep activities" to enabled

  2. Adding the following code to the OverlayController's onViewBound(...):

         addLifecycleListener(new Controller.LifecycleListener(){
    
         @Override 
         public void preDestroyView(@NonNull Controller controller, @NonNull View view) {
             Log.d("OverlayController",
                   "controller.getActivity().isChangingConfigurations()="
                   + controller.getActivity().isChangingConfigurations());
         }
     });
    
  3. Opening the OverlayController in the demo app,

  4. and then backgrounding the app by pressing the home button.

Stacktrace of doing so in tag 2.0.7:
01-20 11:33:03.820 17094-17094/com.bluelinelabs.conductor.demo E/AndroidRuntime: FATAL EXCEPTION: main Process: com.bluelinelabs.conductor.demo, PID: 17094 java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.app.Activity.isChangingConfigurations()' on a null object reference at com.bluelinelabs.conductor.demo.controllers.OverlayController$1.preDestroyView(OverlayController.java:52) at com.bluelinelabs.conductor.Controller.removeViewReference(Controller.java:846) at com.bluelinelabs.conductor.Controller.detach(Controller.java:834) at com.bluelinelabs.conductor.Controller$7.onDetached(Controller.java:915) at com.bluelinelabs.conductor.internal.ViewAttachHandler$1.onViewDetachedFromWindow(ViewAttachHandler.java:45) at android.view.View.dispatchDetachedFromWindow(View.java:14578) at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3071) at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3063) at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3063) at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3063) at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3063) at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3063) at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3063) at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3063) at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3063) at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3063) at android.view.ViewRootImpl.dispatchDetachedFromWindow(ViewRootImpl.java:3068) at android.view.ViewRootImpl.doDie(ViewRootImpl.java:5606) at android.view.ViewRootImpl.die(ViewRootImpl.java:5583) at android.view.WindowManagerGlobal.removeViewLocked(WindowManagerGlobal.java:397) at android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:352) at android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:116) at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3867) at android.app.ActivityThread.-wrap5(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1398) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

@EricKuck
Copy link
Member

Thanks for the easy to reproduce steps. This should now be resolved in the latest snapshot.

@chris6647
Copy link
Author

👍 Works for me as well now, appreciate it!

PaulWoitaschek pushed a commit to PaulWoitaschek/Conductor that referenced this issue Oct 9, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants