@@ -51,7 +51,7 @@ public void onActivityStarted(@NonNull Activity activity) {
5151 @ Override
5252 public void onActivityResumed (@ NonNull Activity activity ) {
5353 Branch branch = Branch .getInstance ();
54- BranchLogger .v ("onActivityResumed, activity = " + activity + " branch: " + branch + " Activities on stack: " + activitiesOnStack_ );
54+ BranchLogger .v ("onActivityResumed, activity = " + activity + " branch: " + branch );
5555 if (branch == null ) return ;
5656
5757 // if the intent state is bypassed from the last activity as it was closed before onResume, we need to skip this with the current
@@ -76,18 +76,22 @@ public void onActivityResumed(@NonNull Activity activity) {
7676 // must be called after session initialization, which relies on checking whether activity
7777 // that is initializing the session is being launched from stack or anew
7878 activitiesOnStack_ .add (activity .toString ());
79+ BranchLogger .v ("activityCnt_: " + activityCnt_ );
80+ BranchLogger .v ("activitiesOnStack_: " + activitiesOnStack_ );
7981 }
8082
8183 @ Override
8284 public void onActivityPaused (@ NonNull Activity activity ) {
8385 Branch branch = Branch .getInstance ();
84- BranchLogger .v ("onActivityPaused, activity = " + activity + " branch: " + branch + " Activities on stack: " + activitiesOnStack_ );
86+ BranchLogger .v ("onActivityPaused, activity = " + activity + " branch: " + branch );
8587 if (branch == null ) return ;
8688
8789 /* Close any opened sharing dialog.*/
8890 if (branch .getShareLinkManager () != null ) {
8991 branch .getShareLinkManager ().cancelShareLinkDialog (true );
9092 }
93+ BranchLogger .v ("activityCnt_: " + activityCnt_ );
94+ BranchLogger .v ("activitiesOnStack_: " + activitiesOnStack_ );
9195 }
9296
9397 @ Override
@@ -101,7 +105,17 @@ public void onActivityStopped(@NonNull Activity activity) {
101105 if (activityCnt_ < 1 ) {
102106 branch .setInstantDeepLinkPossible (false );
103107 branch .closeSessionInternal ();
108+
109+ /* It is possible some integrations do not call Branch.getAutoInstance() before the first
110+ activity's lifecycle methods execute.
111+ In such cases, activityCnt_ could be set to -1, which could cause the above line to clear
112+ session parameters. Just reset to 0 if we're here.
113+ */
114+ activityCnt_ = 0 ;
115+ BranchLogger .v ("activityCnt_: reset to 0" );
104116 }
117+
118+ BranchLogger .v ("activitiesOnStack_: " + activitiesOnStack_ );
105119 }
106120
107121 @ Override
@@ -111,14 +125,15 @@ public void onActivitySaveInstanceState(@NonNull Activity activity, @NonNull Bun
111125 @ Override
112126 public void onActivityDestroyed (@ NonNull Activity activity ) {
113127 Branch branch = Branch .getInstance ();
114- BranchLogger .v ("onActivityDestroyed, activity = " + activity + " branch: " + branch + " Activities on stack: " + activitiesOnStack_ );
128+ BranchLogger .v ("onActivityDestroyed, activity = " + activity + " branch: " + branch );
115129 if (branch == null ) return ;
116130
117131 if (branch .getCurrentActivity () == activity ) {
118132 branch .currentActivityReference_ .clear ();
119133 }
120134
121135 activitiesOnStack_ .remove (activity .toString ());
136+ BranchLogger .v ("activitiesOnStack_: " + activitiesOnStack_ );
122137 }
123138
124139 boolean isCurrentActivityLaunchedFromStack () {
0 commit comments