안드로이드 자바
[Android][JAVA] WorkerManager 사용해서 백그라운드 작업하기
teamnova
2023. 5. 6. 12:00
728x90
안녕하세요. 오늘은 WokerManager 사용해서 백그라운드 작업을 한번 해보겠습니다.
먼저 build.gradle(:app)에 의존성 추가를 하겠습니다.
implementation "androidx.work:work-runtime-ktx:2.7.0"
그리고 나서 Woker 클래스를 생성해 줍니다. 저는 PrintWorker로 설정하겠습니다.
PrintWorker.java
public class PrintWorker extends Worker {
public PrintWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) {
super(context, workerParams);
}
@NonNull
@Override
public Result doWork() {
Log.d("TAG", "Hello World");
return Result.success();
}
}
이제 메인액티비티 클래스에서 실행시키겠습니다.
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
PeriodicWorkRequest workRequest = new PeriodicWorkRequest.Builder(
PrintWorker.class, 15, TimeUnit.MINUTES)
.build();
WorkManager.getInstance(this).enqueue(workRequest);
}
}
WorkerRequest는 15분 주기로 반복시키는 것이 최소 단위로 그 이하로 설정할 경우 런타임 예외가 발생하고 반복되지 않습니다.