WorkManager'ı kullanmaya başlamak için önce kitaplığı Android cihazınıza aktarın belirler.
Uygulamanızın build.gradle
dosyasına şu bağımlılıkları ekleyin:
Eski
dependencies { def work_version = "2.9.1" // (Java only) implementation "androidx.work:work-runtime:$work_version" // Kotlin + coroutines implementation "androidx.work:work-runtime-ktx:$work_version" // optional - RxJava2 support implementation "androidx.work:work-rxjava2:$work_version" // optional - GCMNetworkManager support implementation "androidx.work:work-gcm:$work_version" // optional - Test helpers androidTestImplementation "androidx.work:work-testing:$work_version" // optional - Multiprocess support implementation "androidx.work:work-multiprocess:$work_version" }
Kotlin
dependencies { val work_version = "2.9.1" // (Java only) implementation("androidx.work:work-runtime:$work_version") // Kotlin + coroutines implementation("androidx.work:work-runtime-ktx:$work_version") // optional - RxJava2 support implementation("androidx.work:work-rxjava2:$work_version") // optional - GCMNetworkManager support implementation("androidx.work:work-gcm:$work_version") // optional - Test helpers androidTestImplementation("androidx.work:work-testing:$work_version") // optional - Multiprocess support implementation("androidx.work:work-multiprocess:$work_version") }
Bağımlılıkları ekleyip Gradle projenizi senkronize ettikten sonra yapılacak işleri tanımlamaktır.
İşi tanımlayın
İş, Worker
kullanılarak tanımlanır
sınıfını kullanır. doWork()
yöntemi arka planda eşzamansız olarak çalışır
WorkManager tarafından sağlanan iş parçacığı.
WorkManager'ın çalıştırabileceği bazı işler oluşturmak için, Worker
sınıfını genişletin ve
doWork()
yöntemini geçersiz kıl. Örneğin, şunlara yükleyen bir Worker
oluşturmak için:
resim kullanıyorsanız şunları yapabilirsiniz:
Kotlin
class UploadWorker(appContext: Context, workerParams: WorkerParameters): Worker(appContext, workerParams) { override fun doWork(): Result { // Do the work here--in this case, upload the images. uploadImages() // Indicate whether the work finished successfully with the Result return Result.success() } }
Java
public class UploadWorker extends Worker { public UploadWorker( @NonNull Context context, @NonNull WorkerParameters params) { super(context, params); } @Override public Result doWork() { // Do the work here--in this case, upload the images. uploadImages(); // Indicate whether the work finished successfully with the Result return Result.success(); } }
Result
doWork()
öğesinden döndürülen, WorkManager hizmetine,
ve başarısızlık durumunda çalışmanın uygun fiyatlı
yeniden denendi.
Result.success()
: İş başarıyla tamamlandı.Result.failure()
: Çalışma başarısız oldu.Result.retry()
: Çalışma başarısız oldu, başka bir zaman denenmesi gerekiyor ona göre yeniden deneme politikasına bakın.
Çalışma İsteği Oluşturun
Çalışmanız tanımlandıktan sonra Google Cloud Console'da WorkManager belirlemektir. WorkManager, iş verilerinizi planlama ya da planlama iş yeri. Çalışmayı çalıştırılacak şekilde düzenli aralıklarla belirli bir süre boyunca devam edebilir veya yalnızca tek bir dikkat edin.
İşi hangi şekilde planlarsanız planlayın, her zaman
WorkRequest
Worker
iş birimini tanımlar, bir
WorkRequest
(ve
alt sınıfları) nasıl ve ne zaman çalıştırılması gerektiğini tanımlar. En basit senaryoda,
bir
OneTimeWorkRequest
,
aşağıda gösterildiği gibidir.
Kotlin
val uploadWorkRequest: WorkRequest = OneTimeWorkRequestBuilder<UploadWorker>() .build()
Java
WorkRequest uploadWorkRequest = new OneTimeWorkRequest.Builder(UploadWorker.class) .build();
WorkRequest'i sisteme gönderme
Son olarak, WorkRequest
öğenizi WorkManager
adresine
enqueue()
yöntemidir.
Kotlin
WorkManager .getInstance(myContext) .enqueue(uploadWorkRequest)
Java
WorkManager .getInstance(myContext) .enqueue(uploadWorkRequest);
Çalışanın yürütüleceği kesin zaman
WorkRequest
ve sistem optimizasyonlarında kullanılan kısıtlamalarla ilgilidir.
WorkManager, bu kısıtlamalar altında en iyi davranışı sağlayacak şekilde tasarlanmıştır.
Sonraki adımlar
Bu başlangıç kılavuzu yalnızca yüzeyi çizmektedir. WorkRequest
şunları yapabilir:
kısıtlamalar gibi ek bilgileri de içermelidir.
çalışmaya devam etmesi gerekir, işe giriş, bir gecikme ve geri alma politikası
iş yeri. Bir sonraki bölümde, Çalışmanızı tanımlayın
kullanıyorsanız
bu seçenekler hakkında daha ayrıntılı bilgi edinecek ve
ve tekrar eden işlerin nasıl planlanacağına
odaklanacağız.
Ek kaynaklar
Kılavuz belgelerinin yanı sıra birkaç blog, codelab ve kod laboratuvarı bulunur. bazı örnekler var.
Örnekler
- WorkManagerSample, basit bir görüntü işleme uygulamasıdır.
- Yaz çiçeği, çeşitli mimarilerle ilgili en iyi uygulamaları gösteren demo uygulaması birçok bileşeni bulunur.
Codelab'ler
- WorkManager (Kotlin) ve (Java) ile çalışma
- Gelişmiş WorkManager (Kotlin)
Bloglar
- WorkManager ile tanışın
- WorkManager Temel Bilgileri
- WorkManager ve Kotlin
- WorkManager Süreliliği
- WorkManager'ı özelleştirme - Temel bilgiler
- WorkManager'ı Dagger ile özelleştirme