Skip to content

Commit 29eb8ed

Browse files
committed
Use own keep alive executor for background timer
1 parent bcf53c8 commit 29eb8ed

File tree

4 files changed

+33
-20
lines changed

4 files changed

+33
-20
lines changed

Adjust/adjust/src/main/java/com/adjust/sdk/ActivityHandler.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -601,6 +601,15 @@ public void run() {
601601
});
602602
}
603603

604+
public void backgroundTimerFired() {
605+
scheduledExecutor.submit(new Runnable() {
606+
@Override
607+
public void run() {
608+
backgroundTimerFiredI();
609+
}
610+
});
611+
}
612+
604613
public String getAdid() {
605614
if (activityState == null) {
606615
return null;
@@ -702,10 +711,10 @@ public void run() {
702711
if (adjustConfig.sendInBackground) {
703712
logger.info("Send in background configured");
704713

705-
backgroundTimer = new TimerOnce(scheduledExecutor, new Runnable() {
714+
backgroundTimer = new TimerOnce(new Runnable() {
706715
@Override
707716
public void run() {
708-
backgroundTimerFiredI();
717+
backgroundTimerFired();
709718
}
710719
}, BACKGROUND_TIMER_NAME);
711720
}
@@ -717,10 +726,10 @@ public void run() {
717726
{
718727
logger.info("Delay start configured");
719728
internalState.delayStart = true;
720-
delayStartTimer = new TimerOnce(scheduledExecutor, new Runnable() {
729+
delayStartTimer = new TimerOnce(new Runnable() {
721730
@Override
722731
public void run() {
723-
sendFirstPackagesI();
732+
sendFirstPackages();
724733
}
725734
}, DELAY_START_TIMER_NAME);
726735
}

Adjust/adjust/src/main/java/com/adjust/sdk/AttributionHandler.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,10 @@ public AttributionHandler(IActivityHandler activityHandler,
5050
scheduledExecutor = new CustomScheduledExecutor("AttributionHandler", false);
5151
logger = AdjustFactory.getLogger();
5252

53-
timer = new TimerOnce(scheduledExecutor, new Runnable() {
53+
timer = new TimerOnce(new Runnable() {
5454
@Override
5555
public void run() {
56-
sendAttributionRequestI();
56+
sendAttributionRequest();
5757
}
5858
}, ATTRIBUTION_TIMER_NAME);
5959

@@ -117,6 +117,15 @@ public void resumeSending() {
117117
paused = false;
118118
}
119119

120+
public void sendAttributionRequest() {
121+
scheduledExecutor.submit(new Runnable() {
122+
@Override
123+
public void run() {
124+
sendAttributionRequestI();
125+
}
126+
});
127+
}
128+
120129
private void getAttributionI(long delayInMilliseconds) {
121130
// don't reset if new time is shorter than last one
122131
if (timer.getFireIn() > delayInMilliseconds) {

Adjust/adjust/src/main/java/com/adjust/sdk/TimerOnce.java

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,16 @@
88
* Created by pfms on 08/05/15.
99
*/
1010
public class TimerOnce {
11-
private WeakReference<CustomScheduledExecutor> scheduledExecutorWeakRef;
11+
private CustomScheduledExecutor executor;
12+
1213
private ScheduledFuture waitingTask;
1314
private String name;
1415
private Runnable command;
1516
private ILogger logger;
1617

17-
public TimerOnce(CustomScheduledExecutor scheduler, Runnable command, String name) {
18+
public TimerOnce(Runnable command, String name) {
1819
this.name = name;
19-
this.scheduledExecutorWeakRef = new WeakReference<CustomScheduledExecutor>(scheduler);
20+
this.executor = new CustomScheduledExecutor(name, true);
2021
this.command = command;
2122
this.logger = AdjustFactory.getLogger();
2223
}
@@ -25,16 +26,11 @@ public void startIn(long fireIn) {
2526
// cancel previous
2627
cancel(false);
2728

28-
CustomScheduledExecutor scheduledExecutor = scheduledExecutorWeakRef.get();
29-
if (scheduledExecutor == null) {
30-
return;
31-
}
32-
3329
String fireInSeconds = Util.SecondsDisplayFormat.format(fireIn / 1000.0);
3430

3531
logger.verbose("%s starting. Launching in %s seconds", name, fireInSeconds);
3632

37-
waitingTask = scheduledExecutor.schedule(new Runnable() {
33+
waitingTask = executor.schedule(new Runnable() {
3834
@Override
3935
public void run() {
4036
logger.verbose("%s fired", name);
@@ -66,9 +62,7 @@ public void cancel() {
6662

6763
public void teardown() {
6864
cancel(true);
69-
if (scheduledExecutorWeakRef != null) {
70-
scheduledExecutorWeakRef.clear();
71-
}
72-
scheduledExecutorWeakRef = null;
65+
66+
executor = null;
7367
}
7468
}

Adjust/example/src/main/java/com/adjust/examples/MainActivity.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@
1010
import android.widget.Button;
1111
import android.widget.Toast;
1212

13-
import com.adjust.sdk.*;
13+
import com.adjust.sdk.Adjust;
14+
import com.adjust.sdk.AdjustEvent;
1415

1516
public class MainActivity extends AppCompatActivity {
1617
private static final String EVENT_TOKEN_SIMPLE = "g3mfiw";

0 commit comments

Comments
 (0)