doWork of Worker не выполняется внутри моего класса, который расширяет FirebaseMessagingService - PullRequest
0 голосов
/ 20 сентября 2019

Я использую рабочий для обработки уведомлений внутри моего приложения.Для этого я создал простой рабочий:

public class MyWorker extends Worker {
    private static final String TAG = "MyWorker";
    private final WorkerParameters workerParams;
    private MessageRepository repository;

    public MyWorker(@NonNull Context appContext, @NonNull WorkerParameters workerParams) {
       super(appContext, workerParams);
       this.workerParams  = workerParams;
       repository = ((BasicApp) appContext).getRepository();
}

   @NonNull
   @Override
   public Result doWork() {
       sendFeedback();
       return Result.success();
   }
}

Я называю это в MyFirebaseMessagingService, расширяет FirebaseMessagingService и в методе OnMessageReceive у меня есть:

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
...
 Map<String, Object> map = new HashMap<>();
    map.put("internalID", internalID);
    Data data = new Data.Builder()
            .putAll(map)
            .build();
    OneTimeWorkRequest work = new OneTimeWorkRequest.Builder(MyWorker.class)
            .setInputData(data)
            .build();
    WorkManager.getInstance(getApplicationContext()).enqueue(work).getResult();
}

В режиме отладки это неназывается doWork () и конструктор MyWorker.В чем может быть причина?

Более того, я хочу отметить, что если я использую этот код в работах (в kotlin):

val workRequest = PeriodicWorkRequest.Builder(DbPeriodicWorker::class.java, 15 , TimeUnit.MINUTES)
            .setConstraints(constraint)
            .addTag("feedbackCall")
            .build()

[У меня есть код Java и Kotlin, так какЯ начал с проекта quickstart-android для firebase облачных сообщений android]

Я использую в качестве версии androidx.work:

def work_version = "2.1.0"
implementation "androidx.work:work-runtime:$work_version"
implementation "androidx.work:work-runtime-ktx:$work_version"

Заранее спасибо.

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