Skip to content

Commit 70976f0

Browse files
fix lifecycle crashes (#696)
1 parent 56bff9a commit 70976f0

1 file changed

Lines changed: 15 additions & 5 deletions

File tree

conductor/src/main/java/com/bluelinelabs/conductor/internal/ControllerLifecycleOwner.kt

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,23 +18,33 @@ class ControllerLifecycleOwner(lifecycleController: Controller) : LifecycleOwner
1818
lifecycleController.addLifecycleListener(
1919
object : LifecycleListener() {
2020
override fun postContextAvailable(controller: Controller, context: Context) {
21-
lifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_CREATE) // --> State.CREATED;
21+
if (lifecycleRegistry.currentState != Lifecycle.State.DESTROYED) {
22+
lifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_CREATE) // --> State.CREATED;
23+
}
2224
}
2325

2426
override fun postCreateView(controller: Controller, view: View) {
25-
lifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_START) // --> State.STARTED;
27+
if (lifecycleRegistry.currentState != Lifecycle.State.DESTROYED) {
28+
lifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_START) // --> State.STARTED;
29+
}
2630
}
2731

2832
override fun postAttach(controller: Controller, view: View) {
29-
lifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_RESUME) // --> State.RESUMED;
33+
if (lifecycleRegistry.currentState != Lifecycle.State.DESTROYED) {
34+
lifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_RESUME) // --> State.RESUMED;
35+
}
3036
}
3137

3238
override fun preDetach(controller: Controller, view: View) {
33-
lifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_PAUSE) // --> State.STARTED;
39+
if (lifecycleRegistry.currentState != Lifecycle.State.DESTROYED) {
40+
lifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_PAUSE) // --> State.STARTED;
41+
}
3442
}
3543

3644
override fun preDestroyView(controller: Controller, view: View) {
37-
lifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_STOP) // --> State.CREATED;
45+
if (lifecycleRegistry.currentState != Lifecycle.State.DESTROYED) {
46+
lifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_STOP) // --> State.CREATED;
47+
}
3848
}
3949

4050
override fun preContextUnavailable(controller: Controller, context: Context) {

0 commit comments

Comments
 (0)