How to implement WorkManager to run background process (isWifiEnabled) in your Android App?

Опубликовано: 07 Май 2022
на канале: Programmer World
8,955
103

This video shows steps to implement workmanager API to run certain background tasks for your Android App. In this example it checks whether is Wifi is enabled or not and displays it in a toast message. However, other functionality can also be easily implemented in the doWork() method of the Worker class.

The steps for this App is referred from:
https://developer.android.com/topic/l...


I hope you like this video. For any questions, suggestions or appreciation please contact us at: https://programmerworld.co/contact/ or email at: [email protected]



Complete source code and other details/ steps of this video are posted in the below link:
https://programmerworld.co/android/ho...


However, the main Java code is copied below also for reference:


package com.programmerworld.workmanagerapp;

import androidx.appcompat.app.AppCompatActivity;
import androidx.work.OneTimeWorkRequest;
import androidx.work.PeriodicWorkRequest;
import androidx.work.WorkManager;
import androidx.work.WorkRequest;

import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

import java.util.concurrent.TimeUnit;

public class MainActivity extends AppCompatActivity {

private TextView textView;
private WorkRequest uploadWorkRequest;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

textView = findViewById(R.id.textView);

uploadWorkRequest = new OneTimeWorkRequest.Builder(UploadWorker.class)
.build();

// uploadWorkRequest = new PeriodicWorkRequest.Builder(UploadWorker.class,
// 15*60*1000, //15 mins is minimum
// TimeUnit.MILLISECONDS)
// .build();
}

public void buttonWorkManager(View view){
WorkManager
.getInstance(this)
.enqueue(uploadWorkRequest);

textView.setText("Work Manager executed!");
}
}



/**************/



package com.programmerworld.workmanagerapp;

import android.content.Context;
import android.net.wifi.WifiManager;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import androidx.work.Worker;
import androidx.work.WorkerParameters;

public class UploadWorker extends Worker {
public UploadWorker(@NonNull Context context,
@NonNull WorkerParameters workerParams) {
super(context, workerParams);
}

@NonNull
@Override
public Result doWork() {

ContextCompat.getMainExecutor(getApplicationContext()).execute(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(),
"WorkManager Started ...",
Toast.LENGTH_SHORT).show();

WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(
Context.WIFI_SERVICE);
if (wifiManager.isWifiEnabled()){
Toast.makeText(getApplicationContext(),
"Wifi Enabled",
Toast.LENGTH_LONG).show();
}
else {
Toast.makeText(getApplicationContext(),
"Wifi Disabled",
Toast.LENGTH_LONG).show();
}
}
});
return null;
}
}


-