Expedidor de Trabalhos Firebase não agendando trabalhos em dispositivos OREO
Tenho um expedidor de job da base de firma que está agendado para ser executado sempre que a rede mudar, o trabalho está funcionando perfeitamente em um dispositivo marshmallow (nível 23 da API), mas o mesmo código quando executado não está agendando trabalhos em um dispositivo oreo (nível 26 da API)
Aqui está o meu código de serviço de emprego:
public class MyJobService extends JobService {
@Override
public boolean onStartJob(JobParameters job) {
Log.d("Executing","Job");
Realm realm = Realm.getDefaultInstance();
RealmResults<JsontoSend> realmResults = realm.where(JsontoSend.class).findAll();
if(!realmResults.isEmpty()) {
for (JsontoSend jsontoSend : realmResults) {
final Intent intent = new Intent(getApplicationContext(), PostUploadIntentService.class);
intent.putExtra("object", jsontoSend.getJson());
new Thread(new Runnable() {
@Override
public void run() {
startService(intent);
}
}).run();
}
}
return true;
}
@Override
public boolean onStopJob(JobParameters job) {
Log.d("instopjob","cancelled");
return true;
}
}
Este é o meu código em que criei o trabalho:
synchronized public static void schedule(@NonNull final Context context){
if(sInitialized)
return;
Driver driver=new GooglePlayDriver(context);
FirebaseJobDispatcher dispatcher=new FirebaseJobDispatcher(driver);
Job myJob = dispatcher.newJobBuilder()
.setService(MyJobService.class)
.setTag(JOB_TAG)
.setRecurring(true)
.setTrigger(Trigger.executionWindow(5, 60))
.setLifetime(Lifetime.FOREVER)
.setConstraints(Constraint.ON_ANY_NETWORK)
.setReplaceCurrent(false)
.setRetryStrategy(RetryStrategy.DEFAULT_EXPONENTIAL)
.build();
dispatcher.schedule(myJob);
sInitialized=true;
}
O que estou tentando fazer é que, se eu não tiver conexão com a Internet, armazene os dados no banco de dados local e execute um trabalho sempre que eu conectar à Internet e sincronizar os dados com o servidor. O código acima está funcionando perfeitamente no dispositivo marshmallow, mas o o trabalho nunca é agendado em dispositivos oreo.