Skip to content

Instantly share code, notes, and snippets.

@ariefbayu
Last active December 31, 2019 07:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ariefbayu/657786af41844be7d68eee96ea6db5cb to your computer and use it in GitHub Desktop.
Save ariefbayu/657786af41844be7d68eee96ea6db5cb to your computer and use it in GitHub Desktop.
package xyz.ariefbayu.android.workmanagertutorial.worker;
import android.content.Context;
import android.util.Log;
import androidx.annotation.NonNull;
import androidx.work.ExistingWorkPolicy;
import androidx.work.OneTimeWorkRequest;
import androidx.work.PeriodicWorkRequest;
import androidx.work.WorkManager;
import androidx.work.Worker;
import androidx.work.WorkerParameters;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import xyz.ariefbayu.android.workmanagertutorial.MainActivity;
public class ProcessingWorker extends Worker {
Context currentContext;
public ProcessingWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) {
super(context, workerParams);
currentContext = context;
}
@NonNull
@Override
public Result doWork() {
try {
Log.d("PWLOG", "Let me sleep a moment...");
Thread.sleep(60000 * 5);//5 minutes cycle
doTheActualProcessingWork();
} catch (InterruptedException e) {
Log.d("PWLOG", "Thread sleep failed...");
e.printStackTrace();
}
return Result.success();
}
private void doTheActualProcessingWork() {
Log.d("PWLOG", "Processing work...");
OkHttpClient client = new OkHttpClient();
String url = "https://webhook.site/816ea276-1111-4e87-ad2a-2ea7ec9f7ec8";
Request request = new Request.Builder()
.url(url)
.build();
try (Response response = client.newCall(request).execute()) {
// return response.body().string();
} catch (IOException e) {
e.printStackTrace();
}
OneTimeWorkRequest refreshWork = new OneTimeWorkRequest.Builder(ProcessingWorker.class).build();
WorkManager.getInstance(currentContext).enqueueUniqueWork(MainActivity.PUSH_LOCATION_WORK_TAG, ExistingWorkPolicy.REPLACE, refreshWork);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment