Я пытаюсь прочитать значение из базы данных с помощью диспетчера заданий firebase, однако он ничего не показывает.
Я создал класс обслуживания как
public class RequestService extends JobService {`
BackgroundTask backgroundTask;
static String Key;
@SuppressLint("StaticFieldLeak")
@Override
public boolean onStartJob(final JobParameters job) {
backgroundTask = new BackgroundTask(){
@Override
protected void onPostExecute(String s) {
Toast.makeText(getApplicationContext(), s, Toast.LENGTH_LONG).show();
jobFinished(job, false);
}
};
backgroundTask.execute();
return true;
}
@Override
public boolean onStopJob(JobParameters job) {
return true;
}
public static class BackgroundTask extends AsyncTask<Void, Void, String>{
@Override
protected String doInBackground(Void... voids) {
Query query = FirebaseDatabase.getInstance().getReference().child("Questions").orderByKey().limitToLast(1);
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
HomeConstructor item = dataSnapshot.getValue(HomeConstructor.class);
Key = item.getKey();
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
return Key;
}
}}
I 'm планируя работу в MainActivity, используя
jobDispatcher = new FirebaseJobDispatcher(new GooglePlayDriver(getContext()));
Job job = jobDispatcher.newJobBuilder().setService(RequestService.class).setLifetime(Lifetime.FOREVER).
setRecurring(true).setTag(TAG).setTrigger(Trigger.executionWindow(10, 15)).
setRetryStrategy(RetryStrategy.DEFAULT_EXPONENTIAL).setReplaceCurrent(false).setConstraints(Constraint.ON_ANY_NETWORK)
.build();
jobDispatcher.mustSchedule(job);
Файл манифеста: -
<service android:name=".RequestService">
<intent-filter>
<action android:name="com.firebase.jobdispatcher.ACTION_EXECUTE"/>
</intent-filter>
</service>
Установлен интервал 10, 15, однако я ждал более минуты почтино все равно ничего не появляетсяЯ не уверен, в чем проблема.Любая помощь будет оценена.