Страница 1 из 1

Урок 29. WorkManager. Введение

Добавлено: 13 июн 2018, 22:09
damager82
В этом уроке знакомимся с WorkManager.


Click here to read this article!

Re: Урок 29. WorkManager. Введение

Добавлено: 14 июн 2018, 13:03
AntonShinkaretsky
Замечательный материал по фактам. Хотелось бы увидеть субъективное мнение специалиста - для решения каких задач лучше подходит WorkManager, а когда лучше использовать что-то ещё.

Re: Урок 29. WorkManager. Введение

Добавлено: 08 авг 2018, 01:13
Pringle
Ошибка в статье. Worker.Result. А у вас без точки

Re: Урок 29. WorkManager. Введение

Добавлено: 29 окт 2018, 10:22
wasiliysoft
Пожалуйста обновите статью, после обновления до worker manager alfa 10 код перестал работать, всю голову сломал как починить не знаю

Re: Урок 29. WorkManager. Введение

Добавлено: 22 янв 2019, 11:29
Dmitry100
wasiliysoft писал(а):Пожалуйста обновите статью, после обновления до worker manager alfa 10 код перестал работать, всю голову сломал как починить не знаю
implementation "android.arch.work:work-runtime:1.0.0-beta02"
отправка файла

Код: Выделить всё

...
Data.Builder builder = new Data.Builder().putString(SendFileWorker.KEY_FILE_PATH, imageFile.getAbsolutePath());
                        OneTimeWorkRequest request = new OneTimeWorkRequest.Builder(SendFileWorker.class).setInputData(builder.build()).build();
                        switchToSendState();
                        WorkManager.getInstance().enqueue(request);
...

Re: Урок 29. WorkManager. Введение

Добавлено: 09 мар 2019, 11:30
jazzz17
Очень странно: похоже, OneTimeWorkRequest запускается у меня дважды.

логи:

Код: Выделить всё

2019-03-09 13:48:36.329 30594-30594/com.vsevolodvishnevsky.workmanager D/workmng: onCreate main
2019-03-09 13:48:36.700 30594-30594/com.vsevolodvishnevsky.workmanager D/workmng: onChanged main ENQUEUED
2019-03-09 13:48:36.787 30594-30628/com.vsevolodvishnevsky.workmanager D/workmng: doWork: start pool-1-thread-1
2019-03-09 13:48:36.803 30594-30594/com.vsevolodvishnevsky.workmanager D/workmng: onChanged main RUNNING
2019-03-09 13:48:46.790 30594-30628/com.vsevolodvishnevsky.workmanager D/workmng: doWork: end pool-1-thread-1
2019-03-09 13:48:46.816 30594-30594/com.vsevolodvishnevsky.workmanager D/workmng: onChanged main SUCCEEDED
2019-03-09 13:49:06.807 30594-30631/com.vsevolodvishnevsky.workmanager D/workmng: doWork: start pool-1-thread-2
2019-03-09 13:49:16.809 30594-30631/com.vsevolodvishnevsky.workmanager D/workmng: doWork: end pool-1-thread-2
код активити и myWorker:

Код: Выделить всё

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.d(MyWorker.TAG, "onCreate " + Thread.currentThread().getName());
        doWork();
    }

    public void doWork() {
        OneTimeWorkRequest request = new OneTimeWorkRequest.Builder(MyWorker.class).build();
        WorkManager.getInstance().enqueue(request);
        LiveData<WorkInfo> info = WorkManager.getInstance().getWorkInfoByIdLiveData(request.getId());
        info.observe(this, new Observer<WorkInfo>() {
            @Override
            public void onChanged(@Nullable WorkInfo workInfo) {
                Log.d(MyWorker.TAG, "onChanged " + Thread.currentThread().getName() + " " + workInfo.getState());
            }
        });
    }
}

Код: Выделить всё

public class MyWorker extends Worker {
   public static final String TAG = "working";

    public MyWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) {
        super(context, workerParams);
    }

    @NonNull
    @Override
    public Result doWork() {
        Log.d(TAG, "doWork: start "+ Thread.currentThread().getName());

        try {
            TimeUnit.SECONDS.sleep(10);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        Log.d(TAG, "doWork: end " + Thread.currentThread().getName());
        return Result.success();
    }
}
причем, при втором запуске статусы уже не приходят...