@@ -39,6 +39,8 @@ public class RemoteVerifyJob extends JobService {
3939 private static final String TAG = "RemoteVerifyJob" ;
4040 private static final int PERIODIC_JOB_ID = 0 ;
4141 private static final int FIRST_RUN_JOB_ID = 1 ;
42+
43+ private static final int FIRE_ONCE_JOB_ID = 2 ;
4244 static final String DOMAIN = "attestation.app" ;
4345 private static final String CHALLENGE_URL = "https://" + DOMAIN + "/challenge" ;
4446 private static final String VERIFY_URL = "https://" + DOMAIN + "/verify" ;
@@ -117,13 +119,14 @@ static void schedule(final Context context, int interval) {
117119 throw new RuntimeException ("job schedule failed" );
118120 }
119121 }
120- final JobInfo .Builder builder = new JobInfo .Builder (PERIODIC_JOB_ID , serviceName )
122+ final JobInfo .Builder builder = scheduleNow ?
123+ new JobInfo .Builder (FIRE_ONCE_JOB_ID , serviceName )
124+ .setPersisted (true )
125+ .setRequiredNetworkType (JobInfo .NETWORK_TYPE_ANY )
126+ : new JobInfo .Builder (PERIODIC_JOB_ID , serviceName )
121127 .setPersisted (true )
122- .setRequiredNetworkType (JobInfo .NETWORK_TYPE_ANY );
123-
124- if (!scheduleNow ) {
125- builder .setPeriodic (intervalMillis , flexMillis );
126- }
128+ .setRequiredNetworkType (JobInfo .NETWORK_TYPE_ANY )
129+ .setPeriodic (intervalMillis , flexMillis );
127130
128131 if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .P ) {
129132 builder .setEstimatedNetworkBytes (ESTIMATED_DOWNLOAD_BYTES , ESTIMATED_UPLOAD_BYTES );
0 commit comments