Наблюдаемый для RxWorker в Android WorkManager - PullRequest
0 голосов
/ 22 мая 2019

Я использую WorkManager и RxWorker для наблюдения за изменениями состояния батареи в системе.Возникла проблема при использовании Observable и преобразовании его в Single<result>, так как RxWorker поддерживает только Single<result>.Вот мой фрагмент кода.

override fun createWork(): Single<Result> {
    return Single.fromObservable(ReactiveBattery.observeBatteryChanges(appContext)
            .map { batteryState ->
                try {
                    Timber.e("Test with batterystate %s", batteryState.toString())
                    outputData = workDataOf(BATTERY_LEVEL to batteryState.level())
                    Result.success(outputData)
                } catch (e: Exception) {
                    Timber.e(e, "Test ")
                    Result.failure()
                }

            })
}

Вот мой код observeBatteryChanges().

@CheckResult
  @NonNull
  public static Observable<BatteryState> observeBatteryChanges(@NonNull final Context context) {
    Preconditions.checkNotNull(context, "context == null");
    BatteryObservingStrategy strategy = new GenericBatteryObservingStrategy();

    return strategy.observeBatteryChanges(context);
  }

Работает, но со статусом FAILED, я не получаю статус SUCCEEDEDа также наблюдаемый не запуск изменений батареи ОС.

Кто-нибудь может подсказать, как я могу это сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...