Я использую Firebase JobDispatcher для Android, чтобы запланировать JobService.Мне нужно сообщить UI для обновлений.Как я могу передать обратный вызов в JobService?
Мой класс диспетчера работы
public class JobDispatcher {
private static final String REFRESH_ARTICLES_TAG = "refresh_articles";
private static FirebaseJobDispatcher firebaseJobDispatcher;
private JobDispatcher() {
}
public static void init(Context context) {
firebaseJobDispatcher = new FirebaseJobDispatcher(new GooglePlayDriver(context));
}
private static FirebaseJobDispatcher getDispatcher(Context context) {
if (firebaseJobDispatcher == null)
init(context);
return firebaseJobDispatcher;
}
public static void scheduleRefreshArticles(Context context, RequestCallbacks callbacks) {
Class<RefreshItemsJobService> refreshItemsJobServiceClass = RefreshItemsJobService.class;
Bundle args = new Bundle ();
//args.putSerializable(RefreshItemsJobService.KEY_CALLBACKS, callbacks);
Job sendNotificationJob = getDispatcher(context).newJobBuilder()
.setService((RefreshItemsJobService.class))
.setTag(REFRESH_ARTICLES_TAG)
.setLifetime(Lifetime.UNTIL_NEXT_BOOT)
.setRecurring(true)
.setTrigger(Trigger.executionWindow(10, 20))
.setReplaceCurrent(true)
.setRetryStrategy(RetryStrategy.DEFAULT_LINEAR)
.setConstraints(Constraint.ON_ANY_NETWORK)
//.setExtras(args)
.build();
getDispatcher(context).schedule(sendNotificationJob);
}
public static void stopRefreshArticles(Context context) {
getDispatcher(context).cancel(REFRESH_ARTICLES_TAG);
}
}
и моя служба работы
public class RefreshItemsJobService extends JobService {
public final static String KEY_CALLBACKS = "callbacks";
private RequestCallbacks callbacks;
@Override
public boolean onStartJob(JobParameters job) {
Log.e("job_refresh", "started");
callbacks = (RequestCallbacks) job.getExtras().getSerializable(KEY_CALLBACKS);
if (callbacks != null)
Api.checkForNewArticles(callbacks);
return false;
}
@Override
public boolean onStopJob(JobParameters job) {
return true;
}
}
Я пытаюсь передать обратные вызовы по пакетам, но это вызывает исключение, которое можно было бы перегрузить.