35
35
36
36
import androidx .annotation .RequiresApi ;
37
37
38
+ import java .lang .ref .WeakReference ;
38
39
import java .util .concurrent .ArrayBlockingQueue ;
39
40
import java .util .concurrent .BlockingQueue ;
40
41
@@ -194,11 +195,11 @@ public void onComplete(LocationController.LocationPoint point) {
194
195
@ RequiresApi (api = Build .VERSION_CODES .LOLLIPOP )
195
196
static class LollipopSyncRunnable extends SyncRunnable {
196
197
197
- private JobService jobService ;
198
+ private WeakReference < JobService > jobService ;
198
199
private JobParameters jobParameters ;
199
200
200
- LollipopSyncRunnable (JobService caller , JobParameters jobParameters ) {
201
- this .jobService = caller ;
201
+ LollipopSyncRunnable (JobService service , JobParameters jobParameters ) {
202
+ this .jobService = new WeakReference <>( service ) ;
202
203
this .jobParameters = jobParameters ;
203
204
}
204
205
@@ -208,7 +209,9 @@ protected void stopSync() {
208
209
// Reschedule if needed
209
210
boolean reschedule = OSSyncService .getInstance ().needsJobReschedule ;
210
211
OSSyncService .getInstance ().needsJobReschedule = false ;
211
- jobService .jobFinished (jobParameters , reschedule );
212
+
213
+ if (jobService .get () != null )
214
+ jobService .get ().jobFinished (jobParameters , reschedule );
212
215
}
213
216
}
214
217
@@ -217,16 +220,17 @@ protected void stopSync() {
217
220
* calls Service#stopSelf during stopSync()
218
221
*/
219
222
static class LegacySyncRunnable extends SyncRunnable {
220
- Service callerService ;
223
+ private WeakReference < Service > callerService ;
221
224
222
- LegacySyncRunnable (Service caller ) {
223
- callerService = caller ;
225
+ LegacySyncRunnable (Service service ) {
226
+ callerService = new WeakReference <>( service ) ;
224
227
}
225
228
226
229
@ Override
227
230
protected void stopSync () {
228
231
OneSignal .Log (OneSignal .LOG_LEVEL .DEBUG , "LegacySyncRunnable:Stopped" );
229
- callerService .stopSelf ();
232
+ if (callerService .get () != null )
233
+ callerService .get ().stopSelf ();
230
234
}
231
235
}
232
236
}
0 commit comments