@@ -149,7 +149,7 @@ public OptimizelyClient initialize(@NonNull Context context, @NonNull String dat
149149 // the user can instantiate with the latest datafile
150150 final Intent intent = new Intent (context .getApplicationContext (), DataFileService .class );
151151 if (dataFileServiceConnection == null ) {
152- this .dataFileServiceConnection = new DataFileServiceConnection (this );
152+ this .dataFileServiceConnection = new DataFileServiceConnection (this , context );
153153 context .getApplicationContext ().bindService (intent , dataFileServiceConnection , Context .BIND_AUTO_CREATE );
154154 }
155155
@@ -239,7 +239,7 @@ public void initialize(@NonNull Context context, @NonNull OptimizelyStartListene
239239 this .optimizelyStartListener = optimizelyStartListener ;
240240 final Intent intent = new Intent (context .getApplicationContext (), DataFileService .class );
241241 if (dataFileServiceConnection == null ) {
242- this .dataFileServiceConnection = new DataFileServiceConnection (this );
242+ this .dataFileServiceConnection = new DataFileServiceConnection (this , context );
243243 context .getApplicationContext ().bindService (intent , dataFileServiceConnection , Context .BIND_AUTO_CREATE );
244244 }
245245 }
@@ -265,6 +265,7 @@ public void stop(@NonNull Context context) {
265265 }
266266 if (dataFileServiceConnection != null && dataFileServiceConnection .isBound ()) {
267267 context .getApplicationContext ().unbindService (dataFileServiceConnection );
268+ dataFileServiceConnection = null ;
268269 }
269270
270271 this .optimizelyStartListener = null ;
@@ -456,10 +457,12 @@ public void onActivityDestroyed(Activity activity) {
456457 static class DataFileServiceConnection implements ServiceConnection {
457458
458459 @ NonNull private final OptimizelyManager optimizelyManager ;
460+ @ NonNull private final Context context ;
459461 private boolean bound = false ;
460462
461- DataFileServiceConnection (@ NonNull OptimizelyManager optimizelyManager ) {
463+ DataFileServiceConnection (@ NonNull OptimizelyManager optimizelyManager , @ NonNull Context context ) {
462464 this .optimizelyManager = optimizelyManager ;
465+ this .context = context ;
463466 }
464467
465468 /**
@@ -522,6 +525,7 @@ public void onDataFileLoaded(@Nullable String dataFile) {
522525 @ Override
523526 public void onServiceDisconnected (ComponentName arg0 ) {
524527 bound = false ;
528+ optimizelyManager .stop (context );
525529 }
526530
527531 boolean isBound () {
0 commit comments