WorkManager
Son Güncelleme | Kararlı sürüm | Sürüm Adayı | Beta Sürümü | Alfa sürümü |
---|---|---|---|---|
30 Temmuz 2025 | 2.10.3 | - | - | - |
Bağımlılıkları bildirme
WorkManager'a bağımlılık eklemek için Google Maven deposunu projenize eklemeniz gerekir:
Uygulamanız veya modülünüz için build.gradle
dosyasına ihtiyacınız olan yapılarla ilgili bağımlılıkları ekleyin:
Eski
dependencies { def work_version = "2.10.3" // (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.10.3" // (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 uzantılarını kullanma hakkında bilgi edinmek için ktx belgelerine bakın.
Bağımlılıklar hakkında daha fazla bilgi için Derleme Bağımlılıkları Ekleme başlıklı makaleyi inceleyin.
Geri bildirim
Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmeye yönelik fikirleriniz olursa lütfen bize bildirin. Yeni bir sorun oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.
Daha fazla bilgi için Sorun İzleyici belgelerini inceleyin.
Sürüm 2.10
Sürüm 2.10.3
30 Temmuz 2025
androidx.work:work-*:2.10.3
iptal edilir. 2.10.3 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Önceki bir çalışanla aynı ağ kısıtlamalarına sahip çalışanların kısıtlamalarının karşılanmadığını bildirmesine neden olan sorun düzeltildi. (b/427115602).
Sürüm 2.10.2
18 Haziran 2025
androidx.work:work-*:2.10.2
iptal edilir. 2.10.2 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Ağ istekleri ve varsayılan özelliklerle çalışanlar kalıcı hale getirildiğinde, kaldırılan özelliklerin yeniden eklenmesine ve ağ kısıtlamaları olan çalışanların yanlış davranmasına neden olan sorun düzeltildi. (b/409716532)
- Ağ ve özellikler kullanılabilir olsa bile kısıtlamalar karşılanmadığı için ağ kısıtlamaları olan çalışanların zamanında yürütülmemesine neden olan bir hata düzeltildi. (b/423403088)
Sürüm 2.10.1
23 Nisan 2025
androidx.work:work-*:2.10.1
iptal edilir. 2.10.1 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Kısıtlama izleme için kullanılan bir
NetworkCallback
'ninWorkManager
tarafından kaydedilmesiyleTooManyRequestsException
'nın atılma olasılığını azaltın. (b/231499040, b309d5).
Sürüm 2.10.0
30 Ekim 2024
androidx.work:work-*:2.10.0
iptal edilir. 2.10.0 sürümü bu commit'leri içerir.
2.9.1 sürümünden beri yapılan önemli değişiklikler
WorkManager
kaynaklı işlere izleme etiketleri eklendi. Bu sayede, yürütülen Worker'ın adını içereceğinden "adb shell dumpsys jobscheduler" komutunu anlamak çok daha kolay hale geldi.WorkManager
'nın önemli alanlarına da iz bölümleri eklenir.CoroutineWorker
öğesinin yürütüldüğü dağıtıcıyı kontrol etmek içinConfiguration.workerCoroutineContext
eklendi.- Geliştiriciler,
NetworkRequest
yöntemiyle bir çalışan içinConstraints.setRequiredNetworkRequest
kısıtlamasını belirtebilir. Bu sayede, çalışanın hangi ağda çalışması gerektiği konusunda daha ayrıntılı kontrol sahibi olabilirsiniz. WorkManager
2.10.0 sürümü artık SDK 35 ile derleniyor ve SDK 35 uyumluluğu için çeşitli değişiklikler içeriyor.
Sürüm 2.10.0-rc01
24 Ekim 2024
androidx.work:work-*:2.10.0-rc01
iptal edilir. 2.10.0-rc01 sürümü şu commit'leri içerir.
Sürüm 2.10.0-beta01
2 Ekim 2024
androidx.work:work-*:2.10.0-beta01
iptal edilir. 2.10.0-beta01 sürümü bu commit'leri içerir.
Sürüm 2.10.0-alpha04
18 Eylül 2024
androidx.work:work-*:2.10.0-alpha04
iptal edilir. 2.10.0-alpha04 sürümü bu commit'leri içerir.
API Değişiklikleri
- Ön plan hizmeti türüne göre yürütme zaman aşımı nedeniyle ön plan çalışanının durdurulduğu zaman için durdurma nedenini
STOP_REASON_FOREGROUND_SERVICE_TIMEOUT
ekleyin. (Ibd0af)
Sürüm 2.10.0-alpha03
4 Eylül 2024
androidx.work:work-*:2.10.0-alpha03
iptal edilir. 2.10.0-alpha03 sürümü bu commit'leri içerir.
Yeni Özellikler
WorkManager
kaynaklı işlere izleme etiketleri eklendi. Bu sayede, yürütülen Worker'ın adını içereceğinden "adb shell dumpsys jobscheduler" komutunu anlamak çok daha kolay hale geldi.WorkManager
'nın önemli alanlarına da iz bölümleri eklenir.
API Değişiklikleri
- WorkManager 2.10.0 artık SDK 35 ile derleniyor.
WorkManager
,stopSelf()
'i çağırmadığında "kısa hizmet" ve "veri senkronizasyonu" türündeki ön plan çalışanlarının zaman aşımına uğraması ve ANR'ye neden olması sorunu düzeltildi. Bu düzeltme yalnızca ön plan hizmeti türlerinin kullanıma sunulduğu API 34 ve 35'e sahip cihazlar için geçerlidir. (ca06b2, b/364508145)WorkerParameters
,WorkerFactory
kullanılırkenWorker
öğesinin bağlandığı uzak işlemi değiştirmeyi mümkün kılan yeni API'ler. (Ibdc8a, Ie8a90, I7373f)
Hata Düzeltmeleri
- Çalışmanın ön plan türünde, iptal edilen Android 14 ön koşul izinleri varken uzun süredir çalışan bir çalışanı (ör. ön plan çalışanı) yeniden başlatmaya çalışmaktan kaynaklanan kilitlenmeyi düzeltir.
WorkManager
(b/333957914) - AGP 7.3 veya sonraki sürümleriyle (ör. R8 sürümü 3.3) R8 kullanılırken ve AGP 8.1 veya sonraki sürümleriyle (ör. D8 sürümü 8.1) tüm derlemeler için yeni platform API'lerine erişimin manuel olarak ana hatlarının oluşturulması, API modelleme aracılığıyla otomatik olarak yapıldığından kaldırıldı. AGP kullanmayan müşterilerin D8 sürüm 8.1 veya sonraki bir sürüme güncellemeleri önerilir. Daha fazla bilgi için bu makaleye göz atın. (Ia60e0, b/345472586)
Sürüm 2.10.0-alpha02
17 Nisan 2024
androidx.work:work-*:2.10.0-alpha02
iptal edilir. 2.10.0-alpha02 sürümü bu commit'leri içerir.
API Değişiklikleri
WorkManager
içinde yapılandırılabilir bir@RestrictTo
Tracer
aracılığıyla izleme aralıkları yayınlama özelliği eklendi. (I17d7f, b/260214125)CoroutineWorker
öğesinin yürütüldüğü dağıtıcıyı kontrol etmek içinConfiguration.workerCoroutineContext
eklendi.WorkManager
içindeDispatchers.Default
kullanımını tamamen önlemeye yardımcı olur. (Icd1b7)- Workers için özel istisna işleyiciler ekleyin (Ib1b74, b/261190695)
OneTimeWorkRequest.Builder
vePeriodicWorkRequest.Builder
artıkClass
yerineKClass
ile oluşturulabilir:val request = OneTimeWorkRequest.Builder(Worker::class).setConstraints(...).build()
(Ib55f6)WorkManager
sınıfı Kotlin'e taşındı.LiveData
,ListenableFuture
veyaFlow
döndüren yöntemler artık doğru nullability bilgileri sağlıyor. Bu kodda boş değer kabul edilebilirliğiyle ilgili varsayımlar yanlışsa istemcilerin kaynak kodunda değişiklik yapılması gerekebilir. (If6757)
Sürüm 2.10.0-alpha01
24 Ocak 2024
androidx.work:work-*:2.10.0-alpha01
iptal edilir. 2.10.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
- Geliştiriciler,
NetworkRequest
yöntemiyle bir çalışan içinConstraints.setRequiredNetworkRequest
kısıtlamasını belirtebilir. Bu sayede, çalışanın hangi ağda çalışması gerektiği konusunda daha ayrıntılı kontrol sahibi olabilirsiniz.
API Değişiklikleri
- Kısıtlama olarak
NetworkRequest
belirtme özelliği ekleniyor. (Id98a1, b/280634452)
Sürüm 2.9
Sürüm 2.9.1
7 Ağustos 2024
androidx.work:work-*:2.9.1
iptal edilir. 2.9.1 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
WorkManager
Çalışmanın ön plan türünde iptal edilmiş Android 14 ön koşul izinleri varken uzun süredir çalışan bir çalışanı (ör. ön plan çalışanı) yeniden başlatma girişiminden kaynaklanan kilitlenme düzeltildi. (b/333957914)
Sürüm 2.9.0
29 Kasım 2023
androidx.work:work-*:2.9.0
iptal edilir. 2.9.0 sürümü şu commit'leri içerir.
2.8.0 sürümünden beri yapılan önemli değişiklikler
Flow
aracılığıyla gözlemlenebilirlik.LiveData
yerine, Worker'ın ilerleme durumu artık Flow'unWorkManager.getWorkInfosFlow
ve benzeri yöntemleriyle gözlemlenebilir.WorkManager
artık bir çalışanın daha önce neden durdurulduğuyla ilgili ipucu veriyor.getStopReason()
yöntemiyle doğrudan bir çalışandan veyaWorkInfo
üzerindengetStopReason()
yöntemiyle sorgulanabilir.setNextScheduleTimeOverride
aracılığıyla periyodik çalışanların hassas şekilde planlanması. Bu sayede, bir sonraki periyodik çalışma programı dinamik olarak hesaplanabilir. Bu hesaplama, uyarlanabilir yenileme süreleri, özel yeniden deneme davranışı veya haber feed'i çalışanının her sabah kullanıcı uyanmadan önce kayma olmadan çalıştırılması gibi gelişmiş özellikleri uygulamak için kullanılabilir. Bir sonraki çalışan planlanırken mevcut çalışanın iptal edilmesini önlemek için bu tekniklerle birlikteExistingPeriodicWorkPolicy.UPDATE
kullanılmalıdır.- WorkManager'ın, üretimle eşleşen iş parçacığı oluşturma ile test edilmesi.
ExecutorsMode.PRESERVE_EXECUTORS
,Configuration
içinde ayarlanan yürütücüleri korumak ve gerçek ana iş parçacığını kullanmak içininitializeTestWorkManager
içinde kullanılabilir. CoroutineWorker
gibi Coroutines API'leri, ek yapay nesne work-runtime-ktx'ten ana yapay nesne work-runtime'a taşındı. work-runtime-ktx artık boş.
API Değişiklikleri
stopReason
,WorkInfo
adlı CSS'ye eklendi. Bu işlev, çalışan çalıştırıldıktan sonrastopReason
kullanılabilir hâle getirir. Bir çalışan durdurulduktan sonra uygulamanın kendisi çok hızlı bir şekilde sonlandırılabilir. Bu nedenle, raporlamadastopReason
kullanışlı olabilir. (I21386)Clock
'nın yapılandırma üzerinden ayarlanmasına ve Worker testlerinin yürütme sırasını belirlemek için kullanılmasına izin verin. (Ic586e)ListenableWorker
'ye, çalışanın neden durdurulduğuyla ilgili ipucu verengetStopReason()
yöntemi eklendi. (I07060)- Closeguard'ın sızdırılan kaynaklarla ilgili uyarısını önlemek için
WorkManagerTestInitHelper#closeWorkDatabase()
eklendi. (Ia8d49) WorkInfo
'nın oluşturucusu artık herkese açık olduğundan testlerde kullanılabilir. (Ia00b6, b/209145335)work-runtime-ktx
artık boş veCoroutineWorker
ile Kotlin'e özgü diğer yardımcı programlar artık ana work-runtime yapısında kullanılabilir. (I71a9a)- Periyodik çalışma programlarının doğru şekilde ayarlanmasına olanak tanıyan
setNextScheduleTimeOverride
yöntemi eklendi (I3b4da) - Planlanmış çalışma süresi bilgilerini almak için
getNextScheduleTimeMillis
,WorkInfo
'ye eklendi. (I797e4) - İlk gecikme ve periyodiklik bilgileri
WorkInfo
'ya eklenir. (I52f2f) getWorkInfosByTagFlow
,getWorkInfoByIdFlow
,getWorkInfosForUniqueWorkFlow
,getWorkInfosFlow
yöntemleriyle akışlar üzerinden işçileri gözlemleme yöntemi eklendi (If122a)Constraints
'in oluşturucularına ve özelliklerine eksik@RequiresApi(...)
ek açıklamaları eklendi. Bu işlevler artıkWorkManager
'nin ilk sürümlerinden beriConstraints.Builder
'daki ayarlayıcılarda bulunan ilgili ek açıklamalarla uyumlu. (I6d7d2)WorkManager
artık içerik URI çalışanları için ayrı bir sınıra sahip. Bu sayede, yüksek yük altında içerik güncellemelerinin kaçırılmasını önlemek içinJobScheduler
'de çalışanlara garanti edilen yerler veriliyor. Sınır,Configuration.Builder.setContentUriTriggerWorkersLimit
üzerinden yapılandırılabilir. (Ic128f)WorkInfo
için kısıtlamalar eklenir. (I162c0)
Sürüm 2.9.0-rc01
18 Ekim 2023
androidx.work:work-*:2.9.0-rc01
iptal edilir. 2.9.0-rc01 sürümü şu commit'leri içerir.
- Son beta sürümünden bu yana değişiklik yok
Sürüm 2.9.0-beta01
6 Eylül 2023
androidx.work:work-*:2.9.0-beta01
iptal edilir. 2.9.0-beta01 sürümü şu commit'leri içerir.
API Değişiklikleri
WorkInfo.stopReason
veListenableWorker.stopReason
tarafından döndürülen durdurma nedenleri için sabit değerler eklendi (I0cc00).
Sürüm 2.9.0-alpha02
26 Temmuz 2023
androidx.work:work-*:2.9.0-alpha02
iptal edilir. 2.9.0-alpha02 sürümünde şu commit'ler yer alıyor.
Yeni Özellikler
WorkManager
artık bir çalışanın daha önce neden durdurulduğuyla ilgili ipucu veriyor.getStopReason()
yöntemiyle doğrudan bir çalışandan veyaWorkInfo
üzerindengetStopReason()
yöntemiyle sorgulanabilir.
API Değişiklikleri
stopReason
,WorkInfo
adlı CSS'ye eklendi. İşçi çalıştıktan sonrastopReason
kullanılabilir hâle gelir. Bir çalışan durdurulduktan sonra uygulamanın kendisi çok hızlı bir şekilde kapatılabileceğinden, bu durum raporlamadastopReason
faydalı olabilir. (I21386)- Saat'in yapılandırma üzerinden ayarlanmasına ve Worker testlerinin yürütülme sırasını belirlemek için kullanılmasına izin verin. (Ic586e)
ListenableWorker
'ye, çalışanın neden durdurulduğuyla ilgili ipucu verengetStopReason()
yöntemi eklendi. (I07060)- Closeguard'ın sızdırılan kaynaklarla ilgili uyarısını önlemek için
WorkManagerTestInitHelper#closeWorkDatabase()
eklendi. (Ia8d49)
Hata Düzeltmeleri
TestDriver
kullanarakoverrideNextScheduleTime
'ı atlama özelliği eklendi ve test edilebilirlikle ilgili sorunlar düzeltildi. (Ic2905)
Sürüm 2.9.0-alpha01
7 Haziran 2023
androidx.work:work-*:2.9.0-alpha01
iptal edilir. 2.9.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
Flow
aracılığıyla gözlemlenebilirlik.LiveData
yerine, Worker'ın ilerleme durumu artık Flow'unWorkManager.getWorkInfosFlow
ve benzeri yöntemleriyle gözlemlenebilir.setNextScheduleTimeOverride
aracılığıyla periyodik çalışanların hassas şekilde planlanması. Bu sayede, bir sonraki periyodik çalışma programı dinamik olarak hesaplanabilir. Bu hesaplama, uyarlanabilir yenileme süreleri, özel yeniden deneme davranışı veya haber feed'i çalışanının her sabah kullanıcı uyanmadan önce kayma olmadan çalıştırılması gibi gelişmiş özellikleri uygulamak için kullanılabilir. Bir sonraki çalışan planlanırken mevcut çalışanın iptal edilmesini önlemek için bu tekniklerle birlikteExistingPeriodicWorkPolicy.UPDATE
kullanılmalıdır.WorkManager
, üretimle eşleşen ileti dizileriyle test yapıyor.ExecutorsMode.PRESERVE_EXECUTORS
,Configuration
içinde ayarlanan yürütücüleri korumak ve gerçek ana iş parçacığını kullanmak için kullanılabilir.CoroutineWorker
gibi Coroutines API'leri, ek yapay nesnework-runtime-ktx
'den ana yapay nesnework-runtime
'ye taşındı.work-runtime-ktx
artık boş.
API Değişiklikleri
WorkInfo
oluşturucu artık herkese açık ve testlerde kullanılabilir. (Ia00b6, b/209145335)work-runtime-ktx
artık boş veCoroutineWorker
ile ilgili diğer Kotlin yardımcı programları artık anawork-runtime
yapısında kullanılabilir. (I71a9a)- Periyodik çalışma programlarının doğru şekilde ayarlanmasına olanak tanıyan
setNextScheduleTimeOverride
yöntemi eklendi (I3b4da) getEarliestRunTimeMillis
,getNextScheduleTimeMillis
olarak yeniden adlandırıldı. (I2bd7a)- Sonraki planlı çalıştırma zamanı bilgileri
WorkInfo
'ya eklenir. (I797e4) - İlk gecikme ve periyodiklik bilgileri
WorkInfo
'ya eklenir. (I52f2f) getWorkInfosByTagFlow
,getWorkInfoByIdFlow
,getWorkInfosForUniqueWorkFlow
,getWorkInfosFlow
yöntemleriyle akışlar üzerinden işçileri gözlemleme yöntemi eklendi (If122a)- Kısıtlamaların oluşturucularına ve özelliklerine eksik
@RequiresApi(...)
ek açıklamaları eklendi. Bu işlevler artıkWorkManager
'nin ilk sürümlerinden beriConstraints.Builder
'daki ayarlayıcılarda bulunan ilgili ek açıklamalarla uyumlu. (I6d7d2) WorkManager
artık içerik URI çalışanları için ayrı bir sınıra sahip. Bu sayede, yüksek yük altında içerik güncellemelerinin kaçırılmasını önlemek içinJobScheduler
'de çalışanlara garanti edilen yerler veriliyor. Sınır,Configuration.Builder.setContentUriTriggerWorkersLimit
üzerinden yapılandırılabilir. (Ic128f)WorkInfo
için kısıtlamalar eklenir. (I162c0)
Sürüm 2.8
Sürüm 2.8.1
22 Mart 2023
androidx.work:work-*:2.8.1
iptal edilir. 2.8.1 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Daha önce iki eşzamanlı yayını doğru şekilde işlemeyen
RescheduleReceiver
içinde ANR düzeltildi. (b/236906724)
Sürüm 2.8.0
8 Şubat 2023
androidx.work:work-*:2.8.0
iptal edilir. 2.8.0 sürümü şu commit'leri içerir.
2.7.0 sürümünden beri yapılan önemli değişiklikler
Yeni Özellikler
WorkRequests
öğesini orijinal kuyruğa alma süresini, zincirlemeyi vb. koruyarak kesintiye yol açmayacak şekilde güncelleme özelliği eklendi. Bu özellik hakkında daha fazla bilgi edinmek için ayrıntılı blog yayınını veWorkManager.updateWork
ileExistingPeriodicWorkPolicy.UPDATE
için Javadoc'ları inceleyin.
API Değişiklikleri
WorkManager.updateWork
, orijinal kuyruğa alma zamanını ve zincirlemeyi koruyarak çalışmayı güncellemek için eklendi.(I9a248, b/219446409)ExistingPeriodicWorkPolicy.UPDATE
eklendi. Bu politika, düzenli olarak yayınlanan bir çalışmanın adını güncellemeye olanak tanır. MevcutREPLACE
ile benzerdir ancak daha az müdahalecidir: Şu anda çalışıyorsa bir çalışanı iptal etmez ve sıraya alma süresini korur. İlk gecikme ve dönem, güncelleme süresinden değil, orijinal sıraya alma süresinden hesaplanır.REPLACE
veUPDATE
arasındaki karışıklığı azaltmak içinREPLACE
desteği sonlandırıldı.REPLACE
öğesinin önceki anlamlarını korumak istiyorsanızREPLACE
ile aynı olan yeni eklenenCANCEL_AND_REENQUEUE
öğesini kullanabilirsiniz. (I985ed, b/219446409)Consumer<Throwable>
aracılığıyla planlama istisnalarını yakalama özelliği eklendi (setSchedulingExceptionHandler)- WorkManager'ı başlatmaya çalışırken sorun olup olmadığını belirlemek için setInitializationExceptionHandler aracılığıyla
Consumer<Throwable>
sağlama özelliği eklendi. OneTimeWorkRequest
vePeriodicWorkRequest
için satır içi yardımcılarandroidx.work:work-runtime-ktx
'danandroidx.work:work-runtime
'a taşındı (I0010f, b/209145335)- Doğrudan
WorkQuery
oluşturmak için yardımcı yöntemlerWorkQuery.fromIds
,WorkQuery.fromStates
,WorkQuery.fromUniqueWorkNames
,WorkQuery.fromTags
eklendi. (b/199919736) (If48f2, b/199919736) Worker
listesinegetForegroundInfo
eklendi. (Ic1ead)RxWorker
hem RxJava 2 hem de RxJava 3 için artıksetForeground
döndürenCompletable
işlevi var. Bu işlev,ListenableFuture
döndürensetForegroundInfoAsync
işlevi yerine kullanılabilir.RxWorker
hem RxJava 2 hem de RxJava 3 içingetForegroundInfo
,ListenableFuture
döndürengetForegroundInfoAsync
yerine kullanılabilecekSingle
döndürüyor. (b/203851459)- Kısıtlamalar artık
Constraints.Builder
kullanmak yerine doğrudan oluşturulabilir. Bu, Kotlin kullanıcıları için kolaylık sağlar. (Idc390, b/137568653) WorkManager
başlatılıp başlatılmadığını kontrol etme özelliği eklendi. Ayrıca, kitaplık geliştiricileringetConfiguration()
ile başlatılan yapılandırmayı alması için yeni birWorkManager
API'si eklendi. (I6eff3, b/212300336)
Hata Düzeltmeleri
- Aşırı istekli zamanlayıcı nedeniyle çalışanların yük altındayken hemen çalışmasını engelleyen sorun düzeltildi. (I9686b, b/248111307)
- SDK 33 ve sonraki sürümlerde
POST_NOTIFICATIONS
izninin verilmesini gerektiren API'lere@RequiresPermission
eklendi. (Ie542e, b/238790278) suspendCancellableCoroutine
kullanılırkenCoroutineScope
'daki iptalleriListenableFuture
'a aktarın.
Sürüm 2.8.0-rc01
7 Aralık 2022
androidx.work:work-*:2.8.0-rc01
iptal edilir. 2.8.0-rc01 sürümü şu commit'leri içerir.
Yeni Özellikler
- Bu sürümde yeni özellikler yok. Bu güncelleme, temel olarak sürüm yükseltme işlemidir.
Sürüm 2.8.0-beta02
9 Kasım 2022
androidx.work:work-*:2.8.0-beta02
iptal edilir. 2.8.0-beta02 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
equals
yönteminde, daha önce yeni nesil bilgilerini dikkate almayanWorkInfo
düzeltildi. (4977cc)
Sürüm 2.8.0-beta01
5 Ekim 2022
androidx.work:work-*:2.8.0-beta01
iptal edilir. 2.8.0-beta01 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Aşırı istekli zamanlayıcı nedeniyle çalışanların yük altındayken hemen çalışmasını engelleyen sorun düzeltildi. (I9686b, b/248111307)
Sürüm 2.8.0-alpha04
7 Eylül 2022
androidx.work:work-*:2.8.0-alpha04
iptal edilir. 2.8.0-alpha04 sürümünde şu commit'ler yer alıyor.
API Değişiklikleri
WorkerInfo.getGeneration()
veWorkerParameters.getGeneration()
işçinin neslini döndüren işlevler eklendi. Bir çalışan,WorkManager.updateWork
veyaWorkManager.enqueueUniquePeriodicWork
üzerindenExistingPeriodicWorkPolicy.UPDATE
kullanılarak güncellendiyse birden fazla nesle sahiptir. Çalışan şu anda çalışıyorsa, çalışanın yürütülmesi sırasında bir güncelleme yapıldıysa bu yöntemin, şu anda çalışan çalışanınkinden daha yeni bir nesil döndürmesinin mümkün olduğunu unutmayın. (I665c5, b/219446409) (I128a9, b/219446409)InitializationExceptionHandler
başlatılırken sorun olup olmadığını belirlemek için kullanılabilecek bir İstisna İşleyici olanInitializationExceptionHandler
eklendi.WorkManager
(I061de)
Sürüm 2.8.0-alpha03
10 Ağustos 2022
androidx.work:work-*:2.8.0-alpha03
iptal edilir. 2.8.0-alpha03 sürümünde şu commit'ler yer alıyor.
Yeni Özellikler
- Orijinal kuyruğa alma süresini, zincirlemeyi vb. koruyarak
WorkRequests
öğesini kesintiye yol açmadan güncelleme özelliği eklendi. Daha fazla bilgi içinWorkManager.updateWork
veExistingPeriodicWorkPolicy.UPDATE
başlıklı makaleleri inceleyin.
API Değişiklikleri
WorkManager.updateWork
, orijinal kuyruğa alma zamanını ve zincirlemeyi koruyarak çalışmayı güncellemek için eklendi.(I9a248, b/219446409)ExistingPeriodicWorkPolicy.UPDATE
eklendi. Bu politika, belirli aralıklarla yayınlanan bir çalışmanın adını güncellemeye olanak tanır. MevcutREPLACE
işlevine benzer ancak daha az müdahalecidir: Şu anda çalışıyorsa bir çalışanı iptal etmez ve sıraya alma süresini korur. İlk gecikme ve dönem, güncelleme süresinden değil, orijinal sıraya alma süresinden hesaplanır.REPLACE
veUPDATE
arasındaki karışıklığı azaltmak içinREPLACE
desteği sonlandırıldı.REPLACE
öğesinin önceki anlamlarını korumak istiyorsanızREPLACE
ile aynı olan yeni eklenenCANCEL_AND_REENQUEUE
öğesini kullanabilirsiniz. (I985ed, b/219446409)SchedulingExceptionHandler
tanımlayarak planlama istisnalarını yakalama özelliği ekleyin. (I033eb)OneTimeWorkRequest
vePeriodicWorkRequest
için satır içi yardımcılarandroidx.work:work-runtime-ktx
'danandroidx.work:work-runtime
'a taşındı (I0010f, b/209145335)
Hata Düzeltmeleri
- SDK 33 ve sonraki sürümlerde POST_NOTIFICATIONS izninin verilmesini gerektiren API'lere
@RequiresPermission
eklendi. (Ie542e, b/238790278)
Sürüm 2.8.0-alpha02
6 Nisan 2022
androidx.work:work-*:2.8.0-alpha02
iptal edilir. 2.8.0-alpha02 sürümünde şu commit'ler yer alıyor.
API Değişiklikleri
- Kısıtlamalar artık Builder kullanılarak değil doğrudan oluşturulabilir. Bu, Kotlin kullanıcıları için kolaylık sağlar. (Idc390, b/137568653)
WorkManager
başlatılıp başlatılmadığını kontrol etme özelliği eklendi. Ayrıca, kitaplık geliştiricileringetConfiguration()
ile başlatılan yapılandırmayı alması için yeni birWorkManager
API'si eklendi. (I6eff3, b/212300336)
Sürüm 2.8.0-alpha01
12 Ocak 2022
androidx.work:work-*:2.8.0-alpha01
iptal edilir. 2.8.0-alpha01 sürümü şu commit'leri içerir.
API Değişiklikleri
- WorkQuery'yi doğrudan oluşturmak için yardımcı yöntemler
WorkQuery.fromStates
,WorkQuery.fromUniqueWorkNames
,WorkQuery.fromTags
eklendi. (If48f2, b/199919736) - Gelecekteki SDK'lar için deneysel BuildCompat yöntemleri ekler (Iafd82, b/207528937)
getForegroundInfo
öğesiniWorker
listesine ekleyin. (Ic1ead)- Doğrudan kimliklerden WorkQuery oluşturmak için yardımcı yöntemler
WorkQuery.fromIds
eklendi. (Ie5bdf, b/199919736) - RxWorker artık
setForeground
döndürenCompletable
işlevine sahip. Bu işlev,ListenableFuture
döndürensetForegroundInfoAsync
yerine kullanılabilir. (I85156) - RxJava 2 için RxWorker artık
getForegroundInfo
döndürenSingle
içeriyor. Bu,ListenableFuture
döndürengetForegroundInfoAsync
yerine kullanılabilir. (I21c91, b/203851459) - RxJava 3 için RxWorker'da artık
getForegroundInfo
döndürenSingle
var. Bu,ListenableFuture
döndürengetForegroundInfoAsync
yerine kullanılabilir. (I1ca8a) - RxWorker artık
setForeground
döndürenCompletable
işlevine sahip. Bu işlev,ListenableFuture
döndürensetForegroundInfoAsync
yerine kullanılabilir. (I992a3, b/203851459)
Hata Düzeltmeleri
suspendCancellableCoroutine
kullanılırkenCoroutineScope
'daki iptalleriListenableFuture
'a aktarın. (I77e63)
Sürüm 2.7
Sürüm 2.7.1
17 Kasım 2021
androidx.work:work-*:2.7.1
iptal edilir. 2.7.1 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
CoroutineScope
yapılan iptaller,suspendCancellableCoroutine
kullanılırkenListenableFuture
aktarılır. (I77e63)- Gecikmiş iş istekleri hızlandırılmış olarak işaretlendiğinde hemen bir istisna oluşturulur. bef1762
Sürüm 2.7.0
13 Ekim 2021
androidx.work:work-*:2.7.0
iptal edilir. 2.7.0 sürümü şu commit'leri içerir.
2.6.0 sürümünden beri yapılan önemli değişiklikler
WorkManager, Android 12'deki ön plan hizmeti kısıtlamalarına yardımcı olmak için yeni bir
WorkRequest.Builder.setExpedited(...)
API sunar.setExpedited(...)
kullanılırken WorkManager, Android 12'den itibaren JobScheduler'daki hızlandırılmış işlere devrederken bir ön plan hizmetine devrederek Android'in önceki sürümlerinde geriye dönük uyumluluk sağlar.
Sürüm 2.7.0-rc01
29 Eylül 2021
androidx.work:work-*:2.7.0-rc01
iptal edilir. 2.7.0-rc01 sürümü şu commit'leri içerir.
Bu sürüm, androidx.work:work-*:2.7.0-beta01
ile aynıdır.
Sürüm 2.7.0-beta01
1 Eylül 2021
androidx.work:work-*:2.7.0-beta01
iptal edilir. 2.7.0-beta01 sürümü şu commit'leri içerir.
Yeni Özellikler
- WorkManager başlatılırken çok işlemli SQLite çekişmesini azaltır.
API Değişiklikleri
- Android 12 (S) için temel platform API'leri kararlı olduğundan
@ExperimentalExpeditedWork
API'lerini kaldırın. (aosp/1792806)
Hata Düzeltmeleri
getForegroundInfoAsync()
uygulamayan hızlandırılmış çalışanlar için daha iyi bir hata mesajı sağlama. (aosp/1809376)
Sürüm 2.7.0-alpha05
21 Temmuz 2021
androidx.work:work-*:2.7.0-alpha05
iptal edilir. 2.7.0-alpha05 sürümü şu commit'leri içerir.
Bu sürümde WorkManager 2.6.0-beta02
sürümündeki hata düzeltmeleri de yer almaktadır.
Sürüm 2.7.0-alpha04
2 Haziran 2021
androidx.work:work-*:2.7.0-alpha04
iptal edilir.
Bu sürüm, 2.6.0-beta01 sürümündeki değişiklikleri de içerir.
API Değişiklikleri
ListenableWorker.setForegroundAsync()
artık kullanımdan kaldırılmıyor.- Mümkün olduğunda
WorkRequest.Builder.setExpedited(...)
API'yi kullanmanızı öneririz. Geliştiriciler, uygulamanın ön plan hizmeti kısıtlamalarına tabi olmadığı durumlarda daha iyi destek sağlamak içinListenableWorker.setForegroundAsync()
API'sini kullanabilir. - Uygulama ön plan hizmeti kısıtlamalarına tabi olduğunda
ListenableWorker.setForegroundAsync()
çağrılırsa ForegroundServiceStartNotAllowedException hatası verilir.
Hata Düzeltmeleri
- Hızlandırılmış işler yeniden planlandığında hızlandırılmış olarak kalmaz. Bu işler normal işlere dönüşür.
Sürüm 2.7.0-alpha03
21 Nisan 2021
�androidx.work:work-*:2.7.0-alpha03
iptal edilir. 2.7.0-alpha03 sürümü şu commit'leri içerir.
Yeni Özellikler
WorkManager
2.6.0-alpha02
: Herhangi bir süreçte çalışabilen Worker'lar için destek ekler. (Iaf200)WorkManager
2.6.0-alpha02
: Uzak bir işleme bağlanabilenRemoteListenableWorker
uygulaması olanRemoteCoroutineWorker
eklendi. (I30578)
API Değişiklikleri
- WorkManager
2.6.0-alpha02
:TEMPORARILY_UNMETERED
ağ kısıtlaması için destek eklendi. (I08d5e) - WorkManager
2.6.0-alpha02
:setProgressAsync()
için çok işlemli çalışan desteği. (Ib6d08) - WorkManager
2.6.0-alpha02
:Diğerandroidx.startup.Initializer
'lerin bunları bağımlılık olarak kullanabilmesi içinWorkManagerInitializer
'ı herkese açık hale getirin. (I5ab11)
Sürüm 2.7.0-alpha02
10 Mart 2021
androidx.work:work-*:2.7.0-alpha02
iptal edilir. 2.7.0-alpha02 sürümünde şu commit'ler yer alıyor.
Hata Düzeltmeleri
- Android 12'yi hedeflerken kilitlenme sorununu düzeltmek için
PendingIntent
değişkenliğini açıkça belirtin. (b/180884673)
Sürüm 2.7.0-alpha01
18 Şubat 2021
androidx.work:work-*:2.7.0-alpha01
iptal edilir. 2.7.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
WorkManager, Android 12'deki
WorkRequest.Builder.setExpedited(...)
ön plan hizmeti kısıtlamalarını dikkate almak için yeni bir API sunar.Uygulamalar artık arka plandayken ön plan hizmeti başlatamaz. Bu nedenle, daha önce bir ön plan hizmetinin yaşam döngüsüne bağlı olan uzun süreli çalışmaları daha iyi desteklemek için uygulamalar
WorkRequest
öğelerini hızlandırılmış olarak işaretleyebilir.Bu API, artık desteği sonlandırılan
setForegroundAsync(...)
/setForeground(...)
API'lerinin yerini almıştır.setExpedited(...)
kullanılırken WorkManager, Android 12'den itibarenJobScheduler
içinde hızlandırılmış işlere devrederken ön plan hizmetlerine devrederek Android'in önceki sürümlerinde geriye dönük uyumluluk sağlar.
API Değişiklikleri
- Hızlı
WorkRequest
'ler için destek ekleyin.
Sürüm 2.6.0
Sürüm 2.6.0
1 Eylül 2021
androidx.work:work-*:2.6.0
iptal edilir. 2.6.0 sürümü şu commit'leri içerir.
2.5.0 sürümünden beri yapılan önemli değişiklikler
WorkManager artık WorkManager'ı başlatmak için
androidx.startup
kullanıyor. Geçmişte WorkManager'ı başlatmak içintools:node="remove"
ContentProvider
kullanmışsanız bunun yerine aşağıdakileri yapmanız gerekir.<provider android:name="androidx.startup.InitializationProvider" android:authorities=\"${applicationId}.androidx-startup" android:exported="false" tools:node=\"merge"> <!-- If you are using androidx.startup to initialize other components --> <meta-data android:name="androidx.work.WorkManagerInitializer" android:value="androidx.startup" tools:node="remove" /> </provider>
<!-- If you want to disable android.startup completely. --> <provider android:name="androidx.startup.InitializationProvider" android:authorities="${applicationId}.androidx-startup" tools:node="remove" />
Herhangi bir süreçte çalışabilen işçiler için destek eklendi. (Iaf200)
Uzak bir işleme bağlanabilen RemoteListenableWorker uygulaması olan
RemoteCoroutineWorker
eklendi. (I30578)
Sürüm 2.6.0-rc01
4 Ağustos 2021
androidx.work:work-*:2.6.0-rc01
iptal edilir. 2.6.0-rc01 sürümü şu commit'leri içerir.
Bu sürüm, androidx.work:work-*:2.6.0-beta02
ile aynıdır.
Sürüm 2.6.0-beta02
21 Temmuz 2021
androidx.work:work-*:2.6.0-beta02
iptal edilir. 2.6.0-beta02 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
RemoteWorkManager
artıkRemoteWorkManagerService
ile doğru şekilde bağlantısı kaldırılıyor. Bu sayedeRemoteWorkManagerService
, temizleme işlemini doğru şekilde yapabiliyor. aosp/1730694RemoteListenableWorker
artıkRemoteWorkerService
ile doğru şekilde bağlantıyı kaldırıyor. Bu sayedeRemoteWorkerService
, temizleme işlemini doğru şekilde yapabiliyor. aosp/1743817ForceStopRunnable
artık yalnızca birincil uygulama sürecinde çalışır. Bu bir optimizasyondur ve birden fazla işlem kullanan uygulamalarda kaynak çekişmesini önler. aosp/1749180, aosp/1761729
Sürüm 2.6.0-beta01
2 Haziran 2021
androidx.work:work-*:2.6.0-beta01
iptal edilir. 2.6.0-beta01 sürümü şu commit'leri içerir.
Bu sürümde, belgelerle ilgili bazı küçük iyileştirmeler yapılmıştır. Bu sürüm, 2.6.0-alpha02 sürümüyle büyük ölçüde aynıdır.
Sürüm 2.6.0-alpha02
21 Nisan 2021
androidx.work:work-*:2.6.0-alpha02
iptal edilir. 2.6.0-alpha02 sürümünde şu commit'ler yer alıyor.
Yeni Özellikler
Herhangi bir süreçte çalışabilen Worker'lar için destek eklenir. (Iaf200)
Uzak bir işleme bağlanabilen
RemoteListenableWorker
uygulaması olanRemoteCoroutineWorker
eklendi. (I30578)
API Değişiklikleri
TEMPORARILY_UNMETERED
ağ kısıtlaması için destek eklendi. (I08d5e)setProgressAsync()
için çoklu işlem çalışan desteği. (Ib6d08)- Diğer
androidx.startup.Initializer
'lerin bunları bağımlılık olarak kullanabilmesi içinWorkManagerInitializer
'yı herkese açık hale getirin. (I5ab11)
Sürüm 2.6.0-alpha01
24 Mart 2021
androidx.work:work-*:2.6.0-alpha01
iptal edilir. 2.6.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
WorkManager
artık WorkManager'ı başlatmak içinandroidx.startup
kullanıyor. Bu işlem daha önceandroidx.work.impl.WorkManagerInitializer
tarafından yapılıyordu. (aosp/1608813)Geçmişte
tools:node="remove"
işlem yaşam döngüsünü başlatmak içinContentProvider
kullanmışsanız bunun yerine aşağıdakileri yapmanız gerekir.<provider android:name="androidx.startup.InitializationProvider" android:authorities=\"${applicationId}.androidx-startup" android:exported="false" tools:node=\"merge"> <!-- If you are using androidx.startup to initialize other components --> <meta-data android:name="androidx.work.impl.WorkManagerInitializer" android:value="androidx.startup" tools:node="remove" /> </provider>
(veya)
<!-- If you want to disable android.startup completely. --> <provider android:name="androidx.startup.InitializationProvider" android:authorities="${applicationId}.androidx-startup" tools:node="remove"> </provider>
API Değişiklikleri
- ListenableWorker'ın
outputData
değerini döndüren birResult.getOutputData()
API'si ekleyin. (Ie51e3)
Hata Düzeltmeleri
AlarmManager
API'leri kullanılırkenSecurityException
istisnasına neden olan bir OEM hatası için geçici çözüm eklendi. (aosp/1587518)
Sürüm 2.5.0
Sürüm 2.5.0
27 Ocak 2021
androidx.work:work-*:2.5.0
iptal edilir. 2.5.0 sürümü şu commit'leri içerir.
2.4.0 sürümünden beri yapılan önemli değişiklikler
- Birden fazla işlem kullanan uygulamalar için yeni bir
:work:work-multiprocess
yapısı. Bu, iş isteği planlamasını tek bir süreçte birleştirerek performans artışı sağlar.work-multiprocess
uygulamasını kullanmak için şunlara bağımlılık tanımlayın:implementation "androidx.work:work-multiprocess:2.5.0"
- Configuration.Builder.setDefaultProcessName(String) kullanarak birincil işlem belirleyin.
work-multiprocess
kullanırkenWorkRequest
cihazlarınızı yönetmek için RemoteWorkManager'ı da kullanmak istiyorsunuz. RemoteWorkManager her zaman belirlenen işleme ulaşır. İşlem içi zamanlayıcı da belirlenen işlemde çalışır.
- Bazen
ActivityManager
, bir işi başlatmak içinJobService
örneğini oluşturamaz. Bu durum, temel işin bir platform hatası nedeniyle sessizce bırakılmasına neden olur.WorkManager
, artık işlerin uzlaştırılmasıyla birApplication
başlatıldığında her birWorkRequest
için yedekleme işleri olmasını sağlar. Bu, iş yürütme güvenilirliğini büyük ölçüde artırır. (b/172475041, aosp/1489577) WorkManager
,WorkRequest
tamamlandıktan sonraWorkRequest
izlenen arabellek süresini kısaltarak veritabanı büyümesini sınırlar. Süre daha önce7
gündü. Bu süre,1
gün + keepResultsForAtLeast süresi olarak kısaltıldı. (aosp/1419708)TestListenableWorkerBuilder
, artık testi kolaylaştırmak içinListenableWorker
sınıfını genişleten somutlaştırılmış sınıfı destekliyor. (aosp/1443299, b/169787349)- WorkManager Inspector artık Android Studio Arctic Fox kullanılırken kullanılabilir.
Sürüm 2.5.0-rc01
13 Ocak 2021
androidx.work:work-*:2.5.0-rc01
iptal edilir. 2.5.0-rc01 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
WorkQuery
tabanlı API kullanılırken öğeler güncellendikten sonragetWorkInfosLiveData
öğesinin doğru şekilde geçersiz kılınmamasına neden olan hata düzeltildi. (aosp/1540566, b/173769028)- Nadir durumlarda veritabanı işlemlerinin başarılı olarak işaretlenmemesine neden olan hata düzeltildi. Bu durum, bazı Motorola cihazlarda sorunlara neden olur. (aosp/1535368, b/175944460)
- Ölü bir işlemden bağlantı kaldırılmaya çalışılırken
NoSuchElementException
karakterlerinin yoksayılmasına neden olan hata düzeltildi. (aosp/1530589) ConstraintTrackingWorker
işlevini,ListenableWorker
işlevi durdurulmamışsa durduracak şekilde iyileştirin. (aosp/1496844, b/172946965)- androidx.work kitaplıklarını Java 8'i hedefleyecek şekilde güncelleyin (Ibd2f2)
Sürüm 2.5.0-beta02
2 Aralık 2020
androidx.work:work-*:2.5.0-beta02
iptal edilir. 2.5.0-beta02 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
androidx.work:work-multiprocess
'da, WorkManager'ın belirlenen işleme bağlanmaya çalışırken çağırma iş parçacığını istemeden engellemesine neden olan hata düzeltildi. (aosp/1475538)PeriodicWorkRequest
öğelerinin doğru şekilde mutabakatı yapılmamasına neden olan hata düzeltildi. (b/172475041, aosp/1489577)setForeground*
API'leri kullanılırken ön plan hizmeti durdurulduğunda ortaya çıkan platform hatası için geçici çözüm eklendi. (b/170924044, aosp/1489901)
Sürüm 2.5.0-beta01
28 Ekim 2020
androidx.work:work-*:2.5.0-beta01
iptal edilir. 2.5.0-beta01 sürümü şu commit'leri içerir.
Yeni Özellikler
WorkManager
, işlem içi planlayıcı tarafından alınabilecekWorkRequest
sayısı için otomatik olarak sıklık sınırlaması uygular. İstekler hâlâ FIFO sırasına göre yürütülür. (aosp/1455228)WorkManager
, uygulamanın veri deposu kötü durumdayken kurtarmaya çalışır. (aosp/1463103)
Hata Düzeltmeleri
ListenableWorker
kesintiye uğradığında, daha sonra yeniden planlanabilmesi için hemenENQUEUED
olarak işaretleyin. (aosp/1455618, b/170273988)
Sürüm 2.5.0-alpha03
14 Ekim 2020
androidx.work:work-*:2.5.0-alpha03
iptal edilir. 2.5.0-alpha03 sürümü şu commit'leri içerir.
API Değişiklikleri
TestListenableWorkerBuilder
veTestWorkerBuilder
, ham türleri kullanmaz. (I883ad, b/169787349)
Hata Düzeltmeleri
- Varsayılan uygulama işleminin adını belirlemek için
ApplicationInfo
kullanın. (b/168716641, aosp/1429950) RemoteWorkManager
veRemoteWorkContinuation
için görünürlük kurallarını düzeltin. Bu API'ler artık@Restricted
olarak işaretlenmiyor. (aosp/1432091):work:work-multiprocess
için ProGuard kurallarını düzeltin. (aosp/1432091)- Ön plan hizmetine bağlı uzun süreli işler için bildirim yaşam döngülerini iyileştirin. (b/168502234, aosp/1431331)
Sürüm 2.5.0-alpha02
16 Eylül 2020
androidx.work:work-*:2.5.0-alpha02
iptal edilir. 2.5.0-alpha02 sürümünde şu commit'ler yer alıyor.
Yeni Özellikler
id
sorgulamak içinWorkInfo
kullanabilmek üzere WorkQuery'ye bir API ekleyin. (aosp/1412372, b/157335295)- WorkManager, yeni bir yapı (
androidx.work:work-multiprocess:*
) ile birden fazla işlem kullanan uygulamaları daha iyi destekler. Bu yeni yapı, büyük uygulamaların karşılaştığı aşağıdaki gibi bazı sorunların çözülmesine yardımcı olur:- WorkManager'ın genellikle her uygulama sürecinde başlatılması gerekir. Bu durum, SQLite çekişmesinin artmasına ve dolayısıyla başka sorunlara yol açtığı için iyi değildir. WorkManager'da artık
Configuration#setDefaultProcessName(processName)
kullanılarak birincil uygulama süreci belirlemek için kullanılabilecek yeni API'ler var.processName
,packageName:processName
gibi görünen tam nitelikli bir işlem adıdır (ör.com.example:remote
). - Yeni API'ler:
RemoteWorkManager
veRemoteWorkContinuation
ileenqueue
,cancel
vequery
iş istekleri. Bu API'ler, birden fazla işlemde SQLite çekişmesini önlemek içinLiveData
varyantlarını içermez.enqueue
,cancel
vequery
ile ilgili tüm aramalar AIDL kullanılarakprimary
uygulama sürecine yönlendirilir ve akıcı birListenableFuture
döndürür. (aosp/1392657, aosp/1411210, aosp/1412215, aosp/1417713)
- WorkManager'ın genellikle her uygulama sürecinde başlatılması gerekir. Bu durum, SQLite çekişmesinin artmasına ve dolayısıyla başka sorunlara yol açtığı için iyi değildir. WorkManager'da artık
API Değişiklikleri
- WorkManager artık tamamlanmış ve tamamlanmamış bağımlılıkları olmayan
WorkRequest
'ları daha agresif bir şekilde temizliyor. Arabellek süresi7
günden1
güne değiştirildi. (aosp/1419708)
Hata Düzeltmeleri
- WorkManager artık işleri proaktif olarak uzlaştırıyor. Böylece
WorkRequest
veJobScheduler
işleri,WorkManager
başlatıldığında senkronize ediliyor. (aosp/1412794, b/166292069)
Sürüm 2.5.0-alpha01
19 Ağustos 2020
androidx.work:work-*:2.5.0-alpha01
iptal edilir. 2.5.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
- Gelecekte
WorkManager
ile daha iyi araçlar sunmamızı sağlayacak dahili API'lerdeki değişiklikler. Diğer güncellemeler için takipte kalın.
Hata Düzeltmeleri
- Bazı cihazlarda ağ durumu izlenirken
SecurityException
işlenir. (aosp/1396969)
Harici Katkı (External Contribution)
ArrayCreatingInputMerger
ile ilgili dokümanları Zac Sweers (github/43) düzeltti.
Sürüm 2.4.0
Sürüm 2.4.0
22 Temmuz 2020
androidx.work:work-*:2.4.0
iptal edilir. 2.4.0 sürümü şu commit'leri içerir.
2.3.0 sürümünden beri yapılan önemli değişiklikler
WorkManager
s in-process scheduler artık daha yetenekli. Daha önce, devam edenScheduler
yalnızca gecikmemiş ve kısıtlamaları karşılanmış işlerin yürütülmesini değerlendiriyordu. Şimdi, devam eden zamanlayıcı, PeriodicWorkRequest'ler de dahil olmak üzere gelecekte yürütülebilecekWorkRequest
'ları izler. Devam edenScheduler
da planlama sınırlarına uymaz (ancak WorkManager tarafından kullanılanExecutor
boyutunda kısıtlanır). Bu sayede uygulama ön plandayken çok daha fazla WorkRequest yürütülebilir. Gecikmeli işlerin ön planda yürütülmesini yönetmek içinWorkManager
, yeni bir yapılandırılabilirRunnableScheduler
de sunar. (aosp/1185778)- WorkManager artık RxJava 3'ü destekliyor. RxJava 3'ü kullanmak için şu bağımlılığı eklemeniz gerekir:
implementation "androidx.work:work-rxjava3:2.4.0"
. (aosp/1277904) WorkInfo
ile ilgili sorgu yapmak içinWorkQuery
kullanabilme özelliği eklendi. Bu özellik, geliştiricilerWorkInfo
'leri birden fazla özelliğin kombinasyonuyla sorgulamak istediğinde kullanışlıdır. Daha fazla bilgi içinWorkQuery.Builder.fromStates(...)
,WorkQuery.Builder. fromTags(...)
veyaWorkQuery.Builder.fromUniqueWorkNames(...)
sayfalarına bakın. (aosp/1253230, b/143847546)Aşağıdaki yöntemleri kullanarak
WorkManager
'dan teşhis bilgisi isteme özelliği ekleyin:adb shell am broadcast -a "androidx.work.diagnostics.REQUEST_DIAGNOSTICS" -p "<your_app_package_name>"
Bu sayede aşağıdakiler gibi birçok faydalı bilgiye ulaşabilirsiniz:
- Son 24 saat içinde tamamlanan WorkRequest'ler.
- Şu anda RUNNING (ÇALIŞIYOR) durumunda olan WorkRequest'ler.
- Planlanmış İş İstekleri. (aosp/1235501)
ExistingWorkPolicy.APPEND_OR_REPLACE
ekleyin. Bu,APPEND
ile benzerdir ancak ön koşulları iptal edilmiş veya başarısız olmuş bir zincirin yerini alır. (b/134613984, aosp/1199640)Gelecekte yürütülmesi gereken WorkRequest'leri izlemek için özel bir
RunnableScheduler
ekleme olanağı sunar. Bu, işlem içi zamanlayıcı tarafından kullanılır. (aosp/1203944)DelegatingWorkerFactory
kullanırken temsilci olarak atanacak fabrikaların dinamik olarak eklenmesi için destek ekleyin. (b/156289105, aosp/1309745)BATTERY_NOT_LOW
kısıtlamaları için izlemeyi platformla daha uyumlu hale getirin. (aosp/1312583)İşlem içi planlayıcı artık işlemin adını belirlemek için daha iyi API'ler kullanıyor. Bu, birden fazla işlem kullanan uygulamaları daha iyi desteklemek için yararlıdır. (aosp/1324732)
Aşağıdakileri zorunlu kılan yeni Lint kuralları:
setForegroundAsync()
API'leri kullanılırken doğruforegroundServiceType
kullanımı. (b/147873061, aosp/1215915)- WorkManager'ın JobService API'lerini doğrudan kullanırken kullanması gereken JobScheduler kimliklerini belirtme. aosp/1223567
- Varsayılan
WorkerFactory
kullanılırkenListenableWorker
uygulamalarının artıkpublic
olmasını sağlayan yeni bir lint kuralı eklendi. (aosp/1291262)
setForegroundAsync()
için yapılan veListenableWorker
tamamlanmadan önce tamamlanmayan aramalar artık döndürülenListenableFuture
üzerinde birIllegalStateException
aracılığıyla sinyallenecek. (aosp/1262743)Ön planda
Worker
işlemi kesintiye uğradıktan sonraForegroundService
işleminin durdurulmamasına neden olan hata düzeltildi. (b/155579898, aosp/1302153)WorkManager
'nın bir ön plan hizmetine bağlıWorker
'nin birden fazla örneğini yürütmeye çalıştığı hata düzeltildi (b/156310133, aosp/1309853)
Sürüm 2.4.0-rc01
24 Haziran 2020
androidx.work:work-*:2.4.0-rc01
iptal edilir. 2.4.0-rc01 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- İşlem içi planlayıcı artık işlemin adını belirlemek için daha iyi API'ler kullanıyor. Bu, birden fazla işlem kullanan uygulamaları daha iyi desteklemek için yararlıdır. (aosp/1324732)
Sürüm 2.4.0-beta01
20 Mayıs 2020
androidx.work:work-gcm:2.4.0-beta01
, androidx.work:work-runtime:2.4.0-beta01
, androidx.work:work-runtime-ktx:2.4.0-beta01
, androidx.work:work-rxjava2:2.4.0-beta01
ve androidx.work:work-testing:2.4.0-beta01
yayınlandı. 2.4.0-beta01 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Ön planda
Worker
işlemi kesintiye uğradıktan sonraForegroundService
işleminin durdurulmamasına neden olan hata düzeltildi. (b/155579898, aosp/1302153) WorkManager
'nın bir ön plan hizmetine bağlıWorker
'nin birden fazla örneğini yürütmeye çalıştığı hata düzeltildi (b/156310133, aosp/1309853).DelegatingWorkerFactory
kullanırken temsilci olarak atanacak fabrikaların dinamik olarak eklenmesi için destek ekleyin. (b/156289105, aosp/1309745)BATTERY_NOT_LOW
kısıtlamaları için izlemeyi platformla daha uyumlu hale getirin. (aosp/1312583)
Sürüm 2.4.0-alpha03
29 Nisan 2020
androidx.work:work-*:2.4.0-alpha03
iptal edilir. 2.4.0-alpha03 sürümünde şu commit'ler yer alıyor.
Yeni Özellikler
- WorkManager artık RxJava 3'ü destekliyor. RxJava 3'ü kullanmak için şu bağımlılığı eklemeniz gerekir:
implementation "androidx.work:work-rxjava3:2.4.0-alpha03"
. (aosp/1277904) - Varsayılan
WorkerFactory
kullanılırkenListenableWorker
uygulamalarının artıkpublic
olmasını sağlayan yeni bir lint kuralı eklendi. (aosp/1291262)
API Değişiklikleri
ListenableWorker
yürütmesi tamamlandıktan sonrasetProgressAsync()
işlevini çağırmak artıkListenableFuture
üzerindenException
sinyali verecek. (aosp/1285494)WorkQuery.Builder
artıkfinal
olarak işaretleniyor. (aosp/1275037)WorkQuery.Builder
fabrika yöntemleriwithStates
,withTags
vewithUniqueWorkNames
sırasıylafromStates
,fromTags
vefromUniqueWorkNames
olarak yeniden adlandırıldı. (aosp/1280287)
Hata Düzeltmeleri
- Bir cihazın ağ durumunu izlerken
SecurityException
karakterlerini yoksay. (b/153246136, aosp/1280813)
Sürüm 2.4.0-alpha02
1 Nisan 2020
androidx.work:work-*:2.4.0-alpha02
iptal edilir. 2.4.0-alpha02 sürümünde bu commit'ler yer alıyor.
Yeni Özellikler
WorkRequest
öğesinin hemConstraints.setRequiresCharging(...)
hem deConstraints.setRequiresDeviceIdle(...)
gerektirdiği durumlarda uyarı veren yeni bir Lint kuralı eklendi. Bazı cihazlar aynı anda hiç şarj olmuyor ve boşta duruyor. Bu nedenle, bu tür istekler beklenenden daha az sıklıkta çalışır. (aosp/1253840)
API Değişiklikleri
WorkInfo
ile ilgili sorgu yapmak içinWorkQuery
kullanabilme özelliği eklendi. Bu özellik, geliştiricilerWorkInfo
'leri birden fazla özelliğin kombinasyonuyla sorgulamak istediğinde kullanışlıdır. Daha fazla bilgi içinWorkQuery.Builder withStates(...)
,WorkQuery.Builder withTags(...)
veyaWorkQuery.Builder withUniqueWorkNames(...)
sayfalarına bakın. (aosp/1253230, b/143847546)setForegroundAsync()
için yapılan veListenableWorker
tamamlanmadan önce tamamlanmayan aramalar artık döndürülenListenableFuture
üzerinde birIllegalStateException
aracılığıyla sinyallenecek. (aosp/1262743)
Hata Düzeltmeleri
PeriodicWorkRequest
'lar için geçersiz aralık sürelerini kontrol eden lint kuralı düzeltildi. (aosp/1254846, b/152606442)
Sürüm 2.4.0-alpha01
4 Mart 2020
androidx.work:work-*:2.4.0-alpha01
iptal edilir. 2.4.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
WorkManager
s in-process scheduler artık daha yetenekli. Daha önce, devam eden işlem planlayıcı yalnızca gecikmemiş ve kısıtlamaları karşılanmış işleri yürütmeyi değerlendiriyordu. Artık devam eden zamanlayıcı,PeriodicWorkRequest
dahil olmak üzere gelecekte yürütülebilecekWorkRequest
leri izler. Devam eden işlemdeki planlayıcı, planlama sınırlarına da uymaz (ancak yine de WorkManager tarafından kullanılanExecutor
boyutuyla sınırlıdır). Bu sayede uygulama ön planda çalışırken çok daha fazlaWorkRequest
yürütülebilir. (aosp/1185778)adb shell am broadcast -a "androidx.work.diagnostics.REQUEST_DIAGNOSTICS" -p "<your_app_package_name>"
kullanarak WorkManager'dan teşhis bilgisi isteme özelliği eklendi. Bu sayede aşağıdakiler gibi birçok faydalı bilgiye ulaşabilirsiniz:- Son 24 saat içinde tamamlanan WorkRequest'ler.
- Şu anda RUNNING (ÇALIŞIYOR) durumunda olan WorkRequest'ler.
- Planlanmış İş İstekleri. (aosp/1235501)
Aşağıdakileri zorunlu kılan yeni Lint kuralları:
setForegroundAsync()
API'leri kullanılırken doğruforegroundServiceType
kullanımı. (b/147873061, aosp/1215915)JobService
API'leri doğrudan kullanırkenWorkManager
'in kullanması gerekenJobScheduler
kimliklerini belirtme. (aosp/1223567)
API Değişiklikleri
ExistingWorkPolicy.APPEND_OR_REPLACE
ekleyin. Bu,APPEND
ile benzerdir ancak ön koşulları iptal edilmiş veya başarısız olmuş bir zincirin yerini alır. (b/134613984, aosp/1199640)Gelecekte yürütülmesi gereken
WorkRequest
'leri izlemek için özelRunnableScheduler
ekleme olanağı sunar. Bu, işlem içi zamanlayıcı tarafından kullanılır. (aosp/1203944)
Hata Düzeltmeleri
setProgress()
, daha önce imkansız bir tür olanSingle<Void>
döndürdüğü içinRxWorker
içinde kullanımdan kaldırıldı.Completable
yerinesetCompletableProgress()
döndüren yeni bir API eklendi ve yeni API'lere geçişe yardımcı olan yeni Lint kuralları eklendi. (b/150080946, aosp/1242665)
Sürüm 2.3.4
Sürüm 2.3.4
18 Mart 2020
androidx.work:work-*:2.3.4
iptal edilir. 2.3.4 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- 10 dakikalık yürütme penceresi aşıldıktan sonra uzun süren
Worker
işlemlerinin birden fazla örneğinin çalışmasına neden olan hata düzeltildi. (aosp/1247484, b/150553353) - WorkManager'ın lint
IssueRegistry
sorunu düzeltildi. Katkısı için Slack'ten @ZacSweers'e teşekkür ederiz. (aosp/1217923)
Sürüm 2.3.3
Sürüm 2.3.3
4 Mart 2020
androidx.work:work-*:2.3.3
iptal edilir. 2.3.3 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
Worker
kesintiye uğradığında doğru şekilde yeniden planlanmamasına neden olan hata düzeltildi. (b/150325687, aosp/1246571)
Sürüm 2.3.2
Sürüm 2.3.2
19 Şubat 2020
androidx.work:work-*:2.3.2
yayınlanır. 2.3.2 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- WorkManager'ın nadir durumlarda JobScheduler'daki 100 iş sınırını aşmasına neden olan sorun düzeltildi. (aosp/1226859, b/149092520)
- ConstraintControllers'daki yarış durumu düzeltildi. (aosp/1220100)
- Uzun süredir çalışan işçiler için ön plan hizmeti yaşam döngüsü yönetimi iyileştirildi. (aosp/1226295)
- Uzun süren çalışanlar için bildirimlerin iptalinin, çalışan iptal edildiğinde yönetimi iyileştirildi. (aosp/1228346)
Sürüm 2.3.1
Sürüm 2.3.1
5 Şubat 2020
androidx.work:work-*:2.3.1
iptal edilir. 2.3.1 sürümü şu commit'leri içerir.
Hata düzeltmeleri
- Ön planda bir
Service
etkin olduğunda çalışan uzun süreliWorker
'lerin yaşam döngüsünü daha iyi yönetin.Notification
(aosp/1218539, b/147249312) WorkManager
artıkandroidx.sqlite:sqlite-framework:2.1.0
kararlı sürümüne bağlıdır. (aosp/1217729)ForegroundInfo
içindeforegroundServiceType
kullanılırkenAndroidManifest.xml
içindeforegroundServiceType
belirtilmesini sağlamak için lint kuralları eklendi. (aosp/1214207, b/147873061)
Sürüm 2.3.0
Sürüm 2.3.0
22 Ocak 2020
androidx.work:work-*:2.3.0
, 2.3.0-rc01
tarihinden beri herhangi bir değişiklik yapılmadan yayınlandı. 2.3.0 sürümü şu commit'leri içerir.
2.2.0 sürümünden beri yapılan önemli değişiklikler
ListenableWorker#setForegroundAsync()
aracılığıyla uzun süren veya önemli işler için destek.ListenableWorker#setProgressAsync()
üzerinden çalışan ilerlemesi desteği.- WorkManager artık kitaplığın bir parçası olarak ek lint kuralları paketliyor. Bu sayede hatalar erken aşamada yakalanabiliyor.
Sürüm 2.3.0-rc01
8 Ocak 2020
androidx.work:work-*:2.3.0-rc01
iptal edilir. 2.3.0-rc01 sürümü şu commit'leri içerir.
Bu sürüm, 2.3.0-beta02
ile aynıdır.
Hata düzeltmeleri
work-testing
yapısı artıkwork-runtime-ktx
üzerindeapi
bağımlılığı tanımlıyor. (aosp/1194410)
Sürüm 2.3.0-beta02
18 Aralık 2019
androidx.work:work-*:2.3.0-beta02
iptal edilir. 2.3.0-beta02 sürümü şu commit'leri içerir.
Yeni özellikler
- Kurtarılamayan SQLite istisnaları için daha iyi bir hata mesajı eklendi. (aosp/1185777)
- İsteğe bağlı başlatma kullanılırken içerik sağlayıcının
androidx.work.impl.WorkManagerInitializer
,AndroidManifest.xml
öğesinden kaldırılmasını sağlayan bir lint kuralı eklendi. (aosp/1167007) enqueueUniquePeriodicWork()
yerinePeriodicWorkRequest
içinenqueue()
kullanıldığında lint uyarısı eklendi. (aosp/1166032)
API değişiklikleri
ForegroundInfo
artıkListenableWorker.setForegroundAsync()
kullanılırken kullanılacaknotificationId
değerini belirtmenizi gerektiriyor. Bu, zarar veren bir değişikliktir. Bu sayede, uzun süren birden fazlaWorker
'yı paralel olarak çalıştırabilirsiniz.WorkManager
, sağlananNotification
'lerin kullanım ömrünü de daha iyi yönetir. (b/145473554, aosp/1181208, asop/1181216, asop/1183577)
Hata düzeltmeleri
- Alarmların doğru şekilde temizlenmemesine neden olan AlarmManager uygulamasındaki hata düzeltildi. (aosp/1156444)
- Boş bir
WorkRequest
listesinin yanlış birWorkContinuation
zincirinin oluşturulmasına neden olduğu hata düzeltildi. (b/142835274, aosp/1157051)
Bağımlılık değişiklikleri
- WorkManager artık Room 2.2.2'yi kullanıyor.
Sürüm 2.3.0-beta01
20 Kasım 2019
androidx.work:work-*:2.3.0-beta01
iptal edilir. 2.3.0-beta01 sürümü şu commit'leri içerir.
Yeni özellikler
- İsteğe bağlı başlatma kullanılırken
androidx.work.Configuration.Provider
'nın yanlış uygulanmasından kaynaklanan geliştirici hatalarını önleyen yeni bir lint kuralı eklendi. aosp/1164559
Sürüm 2.3.0-alpha03
23 Ekim 2019
androidx.work:work-*:2.3.0-alpha03
iptal edilir. 2.3.0-alpha03 sürümü şu commit'leri içerir.
Yeni özellikler
WorkManager.createCancelPendingIntent()
API'si eklendi. Bu API,AndroidManifest.xml
'da başka bir bileşen kaydetmek zorunda kalmadanWorkRequest
'leri kolayca iptal etmenizi sağlar. Bu API, özellikleWorkRequest
sınıNotification
sinden iptal etmeyi kolaylaştırır. Bu API'nin 2.3.0 sürümündeki yeni ön plan API'leriyle eşleştirilmesini bekliyoruz.- WorkManager artık
androidx.room:*:2.2.0
kararlı sürümüne bağlıdır.
API değişiklikleri
- Temel platform API'leriyle daha tutarlı olması için
ForegroundInfo.getNotificationType()
,ForegroundInfo.getForegroundServiceType()
olarak yeniden adlandırıldı. (b/142729893, aosp/1143316)
Hata düzeltmeleri
- İşlem dışında
setTransactionSuccessful()
için gereksiz bir çağrıdan kaynaklanan hata düzeltildi. Bu durum nadir taşıma işlemlerinde görülür. (b/142580433, aosp/1141737)
Sürüm 2.3.0-alpha02
9 Ekim 2019
androidx.work:work-*:2.3.0-alpha02
iptal edilir. 2.3.0-alpha02 sürümü şu commit'leri içerir.
Yeni özellikler
- WorkManager artık uzun süren veya işletim sistemi tarafından etkin tutulması gereken önemli işlerin çalıştırılmasını destekliyor. Daha fazla bilgi için
ListenableWorker#setForegroundAsync()
(veya Kotlin içinCoroutineWorker#setForeground()
) sayfasına bakın. (aosp/1133636)
API değişiklikleri
Data
içindekicontainsKey
API'sinin adıhasKeyWithValueOfType
olarak değiştirildi.ktx
kitaplığındaki ilgili uzantı yöntemi de yeniden adlandırıldı. (b/141916545)
Hata düzeltmeleri
- WorkManager, sıraya alınan
WorkRequest
sayısı planlama sınırlarına yaklaştığında işleri adil bir şekilde planlar. (aosp/1105766) - WorkManager,
ListenableWorker#onStopped()
işi tamamlanmamışsa çağırır. (b/140055777) - WorkManager artık bir çalışan kesintiye uğradığında veya son durumuna ulaştığında ilerleme bilgilerini kaldırıyor. (aosp/1114572)
Data
artık çok daha kullanışlı birtoString()
görünüme sahip. (b/140945323)Data
artık daha iyi birequals()
yönteme sahip. Ayrıca,Array
türleri içindeepEquals
özelliğini de destekler. (b/140922528)- WorkManager artık dahili veritabanını ve tercih dosyalarını yedeklenmeyen bir dizinde saklıyor. (b/114808216)
Sürüm 2.3.0-alpha01
22 Ağustos 2019
androidx.work:work-*:2.3.September 5, 20190-alpha01
iptal edilir. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.
Yeni özellikler
ListenableWorker
artıksetProgressAsync()
API'si aracılığıyla ilerleme durumunu ayarlayabilir. Ayrıca,CoroutineWorker
'de ilgili birsuspend
-ingsetProgress
API'si veRxWorker
'deSingle<Void>
döndüren birsetProgress
eklendi. Bu yeni API'ler sayesinde Workers,WorkInfo
üzerinden ilerleme bilgilerini iletebilir.WorkInfo
'nın karşılık gelen birgetProgress
API'si vardır. (b/79481554)Data
,Worker
'ye giriş verilerinin beklenen türde anahtarlara sahip olduğunu doğrulamak için kullanılabilecek bircontainsKey()
API'sine sahiptir. (b/117136838)Data
artıkData.toByteArray()
veData.fromByteArray()
kullanılarak serileştirilebilir.Data
ile ilgili sürüm oluşturma garantisi olmadığını, bu nedenle kalıcı hale getirmemeniz veya uygulamalar arasında IPC için kullanmamanız gerektiğini unutmayın. Yalnızca aynı uygulamanın birden fazla işlemi arasında güvenle kullanılabilir.InputMergerFactory
öğesiniConfiguration.setInputMergerFactory
aracılığıyla belirtme özelliği eklendi. (b/133273159)
API değişiklikleri
- WorkManager, daha önce çağrılmış bir
ListenableWorker
örneği döndüren birWorkerFactory
varsaIllegalStateException
örneği oluşturur. (b/139554406) ListenableFuture
iptali veListenableWorker
'dekionStopped()
geri arama özelliğiyle ilgili doküman güncellemeleri. (b/138413671)
Hata düzeltmeleri
- Devam eden planlayıcı artık
idle
kısıtlaması olanWorkRequest
leri yoksayıyor. Bu istekler artık yalnızca cihaz gerçektenidle
olduğundaJobScheduler
tarafından alınır. (aosp/1089779) TestScheduler
artık testlerde dahili görev yürütücüsü için belirtilenExecutor
'yi doğru şekilde kullanıyor. (aosp/1090749)
Sürüm 2.2.0
Sürüm 2.2.0
15 Ağustos 2019
androidx.work:work-*:2.2.0
iptal edilir. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.
Bu sürüm, androidx.work:work-*:2.2.0-rc01
ile aynı.
2.2.0 sürümünde 2.1.0 sürümüne kıyasla yapılan önemli değişiklikler
androidx.work:work-gcm:2.2.0
, Google Play Hizmetleri'nin API düzeyleri <= 22 için kullanılabildiği durumlarda GCMNetworkManager'ın planlayıcı olarak kullanılmasını destekleyen yeni bir Maven yapısıdır. Bu, eski API sürümlerinde daha güvenilir ve performanslı arka plan işlemleri yapılmasına yardımcı olan isteğe bağlı bir bağımlılıktır. Uygulamanız Google Play Hizmetleri'ni kullanıyorsa GCMNetworkManager desteğini otomatik olarak almak için bu bağımlılığı Gradle dosyanıza ekleyin. Play Hizmetleri kullanılamıyorsa WorkManager, eski cihazlarda AlarmManager'ı kullanmaya devam eder.
Sürüm 2.2.0-rc01
30 Temmuz 2019
androidx.work:work-*:2.2.0-rc01
iptal edilir. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.
Hata düzeltmeleri
- AlarmManager uygulamasında, hizmetin erken kapanmasına ve nadir durumlarda
RejectedExecutionException
ile sonuçlanmasına neden olan bir hata düzeltildi. (aosp/1092374) (b/138238197). - Bazı cihazlarda
JobScheduler
API'leri kullanılırkenNullPointerException
ile ilgili geçici çözüm eklendi. (aosp/1091020) (b/138364061), (b/138441699)
Sürüm 2.2.0-beta02
19 Temmuz 2019
androidx.work:work-*:2.2.0-beta02
iptal edilir. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.
Hata düzeltmeleri
2.2.0-beta01
sürümünde eklenen, istenmeyen Jacoco bağımlılığı kaldırıldı.
Sürüm 2.2.0-beta01
17 Temmuz 2019
androidx.work:work-*:2.2.0-beta01
iptal edilir. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.
Yeni özellikler
androidx.work:work-gcm:2.2.0-beta01
, Google Play Hizmetleri'nin API düzeyleri <= 22 için kullanılabildiği durumlarda GCMNetworkManager'ın planlayıcı olarak kullanılmasını destekleyen yeni bir Maven yapısıdır. Bu, eski API sürümlerinde daha güvenilir ve yüksek performanslı arka plan işlemleri yapılmasına yardımcı olan isteğe bağlı bir bağımlılıktır. Uygulamanız Google Play Hizmetleri'ni kullanıyorsa GCMNetworkManager desteğini otomatik olarak almak için bu bağımlılığı Gradle dosyanıza ekleyin. Play Hizmetleri kullanılamıyorsa WorkManager, eski cihazlarda AlarmManager'ı kullanmaya devam eder.
Hata düzeltmeleri
- Nvidia Shield K1 tabletlerde ağ durumu izlenirken oluşan
IllegalArgumentException
sorunu düzeltildi. (aosp/1010188)
Sürüm 2.1.0
Sürüm 2.1.0
11 Temmuz 2019
androidx.work:work-*:2.1.0
iptal edilir. Bu sürüm, androidx.work:work-*:2.1.0-rc01
ile aynı.
2.0.1 sürümünden beri yapılan önemli değişiklikler
work-runtime-ktx
artık Java 8'i gerektiriyor. Herhangi bir sorunla karşılaşırsanızbuild.gradle
bölümüne aşağıdakileri ekleyebilirsiniz:kotlinOptions { jvmTarget = "1.8" }
- WorkManager için isteğe bağlı başlatma eklendi. Bu sayede WorkManager yalnızca referans verildiğinde oluşturulur. b/127497100 Projenizi isteğe bağlı başlatma için ayarlamak üzere:
- Otomatik başlatıcıyı devre dışı bırakın.
- Özel
Application
nesnenizdeConfiguration.Provider
'i uygulayın. WorkManager.getInstance()
ile ilgili tüm referanslarıWorkManager.getInstance(Context)
olarak değiştirin. Bu değişiklik kapsamındaWorkManager.getInstance()
desteğini sonlandırdık. İsteğe bağlı başlatma işlemi yapmıyor olsanız bile yeniWorkManager.getInstance(Context)
yerine her zaman arama yapmak daha güvenlidir.
PeriodicWorkRequest
artık başlangıç gecikmelerini destekliyor. Başlangıçta gecikme ayarlamak içinPeriodicWorkRequest.Builder
üzerindesetInitialDelay
yöntemini kullanabilirsiniz. b/111404867WorkerFactory
kullanılarak bir veya daha fazla kayıtlıDelegatingWorkerFactory
'ye yetki verme özelliği eklendi. b/131435993- WorkManager'ın
Executor
aracılığıyla tüm dahili kayıtları için kullandığıConfiguration.Builder.setTaskExecutor
özelleştirme özelliği eklendi. Worker
veListenableWorker
sınıflarınıwork-testing
yapısındaTestWorkerBuilder
veTestListenableWorkerBuilder
kullanarak birim testi yapılabilir şekilde oluşturma özelliği eklendi.work-testing
artık Kotlin'i bağımlılık olarak çektiğini ve varsayılan olarak çeşitli Kotlin uzantıları içerdiğini unutmayın.
WorkInfo
için çalıştırma denemesi sayısı eklendi. b/127290461Data
türleri artık baytları ve bayt dizilerini depolayıp alabilir. Bu,Data
nesnelerinin maksimum boyutunu DEĞİŞTİRMEZ.- WorkManager artık
Room 2.1.0
'a bağlıdır. Bu, bazı veritabanı sorunlarını düzeltmelidir.
Sürüm 2.1.0-rc01
27 Haziran 2019
androidx.work:work-*:2.1.0-rc01
iptal edilir. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.
Hata düzeltmeleri
- Yedekleme işlemi devam ederken
JobScheduler
ile işler yürütülürken uygulamanın kilitlenmesine neden olan hata düzeltildi b/135858602.
Sürüm 2.1.0-beta02
20 Haziran 2019
androidx.work:work-*:2.1.0-beta02
iptal edilir. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.
Hata düzeltmeleri
TestListenableWorkerBuilder
artıkListenableWorker
örnekleri oluştururken doğruWorkerFactory
kullanıyor. b/135275844- İşlem sonlandırma nedeniyle
WorkRequest
için yürütme pencerelerinde kaymalara neden olan hata düzeltildi. b/135272196
Sürüm 2.1.0-beta01
13 Haziran 2019
androidx.work:work-*:2.1.0-beta01
iptal edilir. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.
Hata düzeltmeleri
- WorkManager artık
Room 2.1.0
'a bağlıdır. Bu, bazı veritabanı sorunlarını düzeltmelidir. - Ana iş parçacığında bazı başlangıç diski G/Ç işlemleri kaldırıldı.
- Kısıtlama izlemede olası bir kilitlenme düzeltildi. b/134361006
- WorkManager'a atfedilen geçersiz işler önceden iptal edildi. b/134058261
- Yanlış davranan cihazlar için JobScheduler API'lerine bazı koruyucu çağrılar eklendi.
Sürüm 2.1.0-alpha03
5 Haziran 2019
androidx.work:*:2.1.0-alpha03
iptal edilir.
Hata düzeltmeleri
PeriodicWorkRequest
ile ilgili dokümanlar iyileştirildi.WorkManagerTestInitHelper
artık testler için doğru arka plan yürütücüsünü kullanıyor.- Bazı cihazlarda büyük işlemler yapılırken karşılaşılan SQLite sorunları düzeltildi. (b/130182503)
- WorkManager'ın bağımlılıkları artık daha ayrıntılı. (b/133169148).
- WorkManager'ı kullanarak iş planlarken
JobScheduler
'ın uygulanmasındaki OEM'e özgü hatalar için geçici çözümler. - Daha önce nadir çökmelere neden olan hizmet ömürleriyle ilgili AlarmManager tabanlı zamanlayıcıda iyileştirmeler yapıldı. (b/133313734)
Sürüm 2.1.0-alpha02
16 Mayıs 2019
WorkManager 2.1.0-alpha02 yayınlandı. Bu sürümde çeşitli yeni API'ler yer almaktadır.
API Değişiklikleri
PeriodicWorkRequest
artık başlangıç gecikmelerini destekliyor. Başlangıçta gecikme ayarlamak içinPeriodicWorkRequest.Builder
üzerindesetInitialDelay
yöntemini kullanabilirsiniz. b/111404867WorkerFactory
kullanılarak bir veya daha fazla kayıtlıDelegatingWorkerFactory
'ye yetki verme özelliği eklendi. b/131435993WorkManager'ın
Executor
aracılığıyla tüm dahili kayıtları için kullandığıConfiguration.Builder.setTaskExecutor
özelleştirme özelliği eklendi.WorkRequest.keepResultsForAtLeast
(b/130638001), isteğe bağlı başlatma vePeriodicWorkRequest.Builder
(b/131711394) ile ilgili dokümanlar iyileştirildi.
Sürüm 2.1.0-alpha01
24 Nisan 2019
WorkManager 2.1.0-alpha01 yayınlandı. Bu sürümde çeşitli yeni API'ler yer almaktadır. Bu sürümden itibaren, 1.x sürümüne geri aktarılmayacak yeni özellikler olacağını lütfen unutmayın. 2.x'e geçmenizi öneririz.
API Değişiklikleri
- WorkManager için isteğe bağlı başlatma eklendi. Bu sayede WorkManager yalnızca referans verildiğinde oluşturulur. b/127497100 Projenizi isteğe bağlı başlatma için ayarlamak üzere:
- Otomatik başlatıcıyı devre dışı bırakın.
- Özel
Application
nesnenizdeConfiguration.Provider
'i uygulayın. WorkManager.getInstance()
ile ilgili tüm referanslarıWorkManager.getInstance(Context)
olarak değiştirin. Bu değişiklik kapsamındaWorkManager.getInstance()
desteğini sonlandırdık. İsteğe bağlı başlatma işlemi yapmıyor olsanız bile yeniWorkManager.getInstance(Context)
yerine her zaman arama yapmak daha güvenlidir.
Worker
veListenableWorker
sınıflarınıwork-testing
yapısındaTestWorkerBuilder
veTestListenableWorkerBuilder
kullanarak birim testi yapılabilir şekilde oluşturma özelliği eklendi.work-testing
artık bağımlılık olarak Kotlin'i kullandığını ancak varsayılan olarak çeşitli Kotlin uzantılarını da içerdiğini unutmayın.
WorkInfo
için çalıştırma denemesi sayısı eklendi. b/127290461Data
türleri artık baytları ve bayt dizilerini depolayıp alabilir. Bu,Data
nesnelerinin maksimum boyutunu DEĞİŞTİRMEZ.CoroutineWorker.coroutineContext
kullanımdan kaldırıldı. Bu alan yanlışlıklaCoroutineDispatcher
olarak yazılmış. Askıya alma işlevinin gövdesinde istediğiniz coroutineContext'e kendiniz gidebileceğiniz için artık bu alana ihtiyacınız yok.RxWorker.createWork()
veRxWorker.getBackgroundScheduler()
artık@NonNull
iade türleriyle açıklama eklenmiş olarak gösteriliyor.
Sürüm 2.0.1
Sürüm 2.0.1
9 Nisan 2019
WorkManager 2.0.1 yayınlandı. Bu sürüm, 2.0.1-rc01 ile aynıdır.
Sürüm 2.0.1-rc01
3 Nisan 2019
WorkManager 2.0.1-rc01 yayınlandı. Bu sürümde bazı hata düzeltmeleri yapıldı. Eski 1.x kullanıcıları için bu değişikliklerin bazıları 1.0.1-rc01 sürümünde de görünür.
Hata Düzeltmeleri
- Robolectric testleri artık WorkManager ile düzgün şekilde çalışıyor. b/122553577
- JobScheduler API'lerinden önceki sürümlerde kısıtlama izlemenin temizlenmemesi nedeniyle oluşan nadir bir kilitlenme sorunu düzeltildi. b/129226383
- Uzun iş zincirleriyle ilgili
StackOverflowError
düzeltildi. b/129091233 PeriodicWorkRequest
ile ilgili dokümanlar, esnek çalışma saatlerinin API 23'te desteklenmediğini belirtecek şekilde güncellendi.- Kotlin belgelerindeki bazı bozuk bağlantılar düzeltildi.
Sürüm 2.0.0
Sürüm 2.0.0
20 Mart 2019
WorkManager 2.0.0 yayınlandı. Bu sürüm, 2.0.0-rc01 ile aynıdır ve AndroidX bağımlılıklarına sahip 1.0.0 kararlı sürümünün AndroidX sürümüdür. Eski 1.x sürümleri yerine bu sürümü hedeflemenizi öneririz. Tüm etkin geliştirme çalışmaları 2.x'i hedefleyecek ve 1.x yalnızca sınırlı bir süre boyunca kritik hata düzeltmeleri alacak.
Sürüm 2.0.0-rc01
7 Mart 2019
WorkManager 2.0.0-rc01 yayınlandı. Bu sürüm, 1.0.0 kararlı sürümüyle aynıdır ancak AndroidX bağımlılıkları içerir. Bu sürüm 2.0.0 kararlı sürümüne ulaştığında bu sürümü eklemeniz gerekir. Eski 1.x sürümleri yalnızca bazı kritik hata düzeltmelerini alır. Tüm etkin geliştirme çalışmaları 2.x'i hedefleyecektir.
AndroidX Öncesi Bağımlılıklar
Referans belgeleri: Java
Groovy
dependencies { def work_version = "1.0.1" // (Java only) implementation "android.arch.work:work-runtime:$work_version" // Kotlin + coroutines implementation "android.arch.work:work-runtime-ktx:$work_version" // optional - RxJava2 support implementation "android.arch.work:work-rxjava2:$work_version" // optional - Test helpers androidTestImplementation "android.arch.work:work-testing:$work_version" }
Kotlin
dependencies { val work_version = "1.0.1" // (Java only) implementation("android.arch.work:work-runtime:$work_version") // Kotlin + coroutines implementation("android.arch.work:work-runtime-ktx:$work_version") // optional - RxJava2 support implementation("android.arch.work:work-rxjava2:$work_version") // optional - Test helpers androidTestImplementation("android.arch.work:work-testing:$work_version") }
Sürüm 1.0.1
Sürüm 1.0.1
9 Nisan 2019
WorkManager 1.0.1 yayınlandı. Bu sürüm, 1.0.1-rc01 ile aynıdır.
1.x dalında çok az güncelleme yapılacağından kullanıcıları WorkManager 2.x'e güncellemeye şiddetle teşvik ettiğimizi lütfen unutmayın. 1.x kitaplığı için yeni API'ler de yayınlanmayacaktır.
Sürüm 1.0.1-rc01
2 Nisan 2019
WorkManager 1.0.1-rc01 yayınlandı. Bu sürümde bazı hata düzeltmeleri yapıldı.
Hata Düzeltmeleri
- Robolectric testleri artık WorkManager ile düzgün şekilde çalışıyor. b/122553577
- JobScheduler API'lerinden önceki sürümlerde kısıtlama izlemenin temizlenmemesi nedeniyle oluşan nadir bir kilitlenme sorunu düzeltildi. b/129226383
- Uzun iş zincirleriyle ilgili
StackOverflowError
düzeltildi. b/129091233
Sürüm 1.0.0
Sürüm 1.0.0
5 Mart 2019
Bu, WorkManager'ın 1.0.0 kararlı sürümüdür. WorkManager'ın bu sürümü, 1.0.0-rc02 sürümüyle aynıdır.
Sürüm 1.0.0-rc02
21 Şubat 2019
Bu, WorkManager'ın 1.0.0 kararlı sürümünün ikinci sürüm adayıdır. Bu sürümde iki hata düzeltmesi yer almaktadır.
Hata Düzeltmeleri
Worker
artık uygulama kilitlendikten sonra doğru şekilde planlanıyor. b/124546316Worker
s that throw an uncheckedException
are now correctly marked asFAILED
and no longer crash the app process.
Sürüm 1.0.0-rc01
14 Şubat 2019
Bu, WorkManager'ın 1.0.0 kararlı sürümünün sürüm adayıdır. Bu sürümde bir hata düzeltmesi yer almaktadır.
Hata Düzeltmeleri
- AlarmManager'a dayalı uygulama artık PeriodicWorkRequest'ler için
flex
pencerelerine doğru şekilde uyuyor. b/124274584
Sürüm 1.0.0-beta05
6 Şubat 2019
Bu sürümde bazı hata düzeltmeleri yer almaktadır.
Hata Düzeltmeleri
- API 23'te
JobScheduler.getPendingJob(...)
kullanıldığı durum düzeltildi. b/123893059 - Android 5.1 (API düzeyi 22) veya önceki sürümlerin yüklü olduğu cihazlarda
NullPointerException
sorunu düzeltildi. b/123835104
Sürüm 1.0.0-beta04
4 Şubat 2019
Bu sürümde bazı hata düzeltmeleri yer almaktadır.
Hata Düzeltmeleri
- AlarmManager tabanlı uygulama için PeriodicWork'ün planlanması iyileştirildi.
- AlarmManager tabanlı uygulama kullanılırken WorkManager'ın kısıtlamaları doğru şekilde izleyememesine neden olan sorun düzeltildi. b/123379508
- AlarmManager tabanlı uygulama kullanılırken WorkManager'ın işlem sonlandığında çalışmayı yeniden denemediği durum düzeltildi. b/123329850
- AlarmManager tabanlı uygulama kullanılırken WorkManager'ın Wakelock'ları sızdırmasına neden olan durum düzeltildi.
Sürüm 1.0.0-beta03
25 Ocak 2019
Bu sürümde bazı hata düzeltmeleri yer almaktadır.
Hata Düzeltmeleri
- Bazı durumlarda işlerin düzgün şekilde yürütülmemesine neden olan bir gerileme
1.0.0-beta02
ile karşılaştık. b/123211993 - Geri çekilme zamanlamasının düzgün şekilde uygulanmadığı durum düzeltildi. b/122881597
- Android 5.1 (API veya daha eski bir sürümü çalıştıran cihazlarda
ConcurrentModificationException
düzeltildi. Bu,1.0.0-beta02
sürümündeki düzeltmenin devamıdır. b/121345393 - Manifest dosyamızda bu ek açıklamanın eksik olduğu bazı bileşenler için
exported=false
eklendi. - WorkManager'ın işletim sistemiyle nasıl etkileşime girdiği hakkında bilgiler paket düzeyindeki dokümanlara eklendi.
Sürüm 1.0.0-beta02
15 Ocak 2019
Bu sürümde bazı hata düzeltmeleri yer almaktadır.
Hata Düzeltmeleri
- Android 6.0 (API düzeyi 23) çalıştıran cihazlarda periyodik çalışmanın aralık başına birden fazla kez çalışabildiği uç durum düzeltildi. b/121998363
- Android 5.1 (API düzeyi 22) veya daha eski sürümleri çalıştıran cihazlarda
ConcurrentModificationException
sorunu düzeltildi. b/121345393 - Android 5.1 (API düzeyi 22) veya önceki sürümlerin yüklü olduğu cihazlarda kısıtlamalar karşılanmadığında işin hatalı şekilde yürütülmesi sorunu düzeltildi. b/122578012
- Bazı sıra dışı durumlarda daha hızlı olması için optimize edilmiş iş tamamlama işleme. b/122358129
- WorkManager'ın kullandığı birden fazla
LiveData
örneği arasındaki olası yarış durumlarını ele almak için bir değişiklik eklendi. 1.1.1-rc01
yerineRoom
bağımlılığı1.1.1
kullanılmaya başlandı. Bu sürümler aynıdır. b/122578011
Sürüm 1.0.0-beta01
19 Aralık 2018
Bu sürümde API değişikliği yoktur. Kritik bir sorun olmadığı sürece WorkManager'ın bir sonraki sürüme kadar API kararlılığını koruması beklenmektedir. Bu sürümde bazı hata düzeltmeleri yer almaktadır.
Hata Düzeltmeleri
- Başarıyla tamamlanan üst öğe işinde daha önce iptal edilmiş alt öğeler artık çalışmayacak. b/120811767
- Günlük kaydı sınıfları düzgün şekilde başlatılır (öncelikle testler sırasında ortaya çıkar).
Sürüm 1.0.0-alpha13
12 Aralık 2018
Bu sürümde, bazı Kotlin kullanıcıları için faydalı olacak küçük bir API değişikliği yapıldı.
API Değişiklikleri
androidx.work.Result
,ListenableWorker
sınıfının iç sınıfı olarak taşındı. Bu, yeniden düzenlemenin Kotlin'in üst düzeyResult
sınıfıyla çakışmasını önler. Bu, API'de yapılan ve geriye dönük uyumluluğu bozan bir değişikliktir. b/120564418
API'de yapılan, geriye dönük uyumluluğu bozan değişiklikler
androidx.work.Result
,ListenableWorker
sınıfının iç sınıfı olarak taşındı.
Sürüm 1.0.0-alpha12
5 Aralık 2018
Bu sürüm, API'de bazı zarar veren değişiklikler içerir. Lütfen aşağıdaki Zarar Veren API Değişiklikleri bölümüne bakın. Bu sürümün ilk beta sürümümüz olarak yayınlanması bekleniyor. alpha12
ayrıca kapsamlı doküman güncellemeleri de içerir.
API Değişiklikleri
- Yeni bir yapı olan
work-rxjava2
,RxWorker
özelliğini sunuyor. Bu,Single<Payload>
bekleyen birListenableWorker
. - Firebase JobDispatcher'ın desteği, kullanımdan kaldırılacak olması nedeniyle sonlandırıldı. Bu nedenle, beta sürümüne geçiş yaparken
work-firebase
yapısı artık güncellenmeyecek. Gelecekte alternatif bir yöntem eklemeyi planlıyoruz. Payload
,Result
ile birleştirildi.Result
artık üç somut uygulamaya sahip bir "sealed class" olupResult.success()
(veyaResult.success(Data)
),Result.failure()
(veyaResult.failure(Data)
) veResult.retry()
aracılığıyla elde edilebilir.ListenableFuture
artıkPayload
yerineResult
ile sonuçlanıyor.Worker
,Data
çıkışı için getter ve setter yöntemlerine sahip değil. Bu, zarar veren bir değişikliktir.- Yavaş tetiklenen içerik URI'lerini daha iyi desteklemek için
Constraints.Builder.setTriggerContentMaxDelay(long, TimeUnit)
veConstraints.Builder.setTriggerContentUpdateDelay(long, TimeUnit)
ile varyantları eklendi. b/119919774 WorkRequest.Builder.setBackoffCriteria(BackoffPolicy, Duration)
varyantı eklendi. Bu yöntem için API 26 gerekir.Operation.await()
veListenableFuture.await()
Kotlin uzantısı yöntemleri eklendi.Operation.getException()
,Operation.getThrowable()
olarak yeniden adlandırıldı. Bu, zarar veren bir değişikliktir.ContentUriTriggers
sınıfı ve onu referans alan yöntemler artık herkese açık olarak kullanılamaz. Bu, zarar veren bir değişikliktir.- API'yi kolaylaştırmak için
WorkManager
,WorkContinuation
veOneTimeWorkRequest
içindeki diğer varargs yöntemleri kaldırıldı. Derlemeyle ilgili sorunları düzeltmek için mevcut varargs'larınızıArrays.asList(...)
ile sarmalayabilirsiniz. Her yöntemin tek bağımsız değişkenli sürümlerini eklemeye devam ediyoruz. Bu, zarar veren bir değişikliktir. WorkContinuation.combine(OneTimeWorkRequest, *)
varyant kaldırıldı. Kafa karıştırıcı bir API sunuyorlardı. Mevcutcombine
yöntemleri daha anlaşılır. Bu, zarar veren bir değişikliktir.
Hata Düzeltmeleri
- Marshmallow öncesi uygulamalar, halihazırda yürütülen bir görevin işlem ölümünden kurtulma konusunda artık daha güvenilirdir.
LiveData
,observeForever
üzerinden gözlemlenir ve WorkManager aracılığıyla izlenir. Bu, Room kitaplığındaki bir düzeltmenin geriye dönük bağlantı noktasıdır. b/74477406- Serileştirilmiş nesne maksimum boyutunu aşıyorsa
Data.Builder.build()
artık istisna oluşturuyor. Bu durum daha önce yalnızca arka plan iş parçacığında meydana geliyordu ve bu nedenle düzgün şekilde ele alınamıyordu. - Durdurulan ve iptal edilen çalışmalar daha net şekilde ayırt edilecek.
getWorkInfoById()
,ListenableWorker.onStopped()
sırasındaCANCELLED
State
ile birlikteWorkInfo
döndürecek. null
Result
'leriniListenableWorker
'de hata olarak değerlendirin. b/120362353- Bazen
IllegalArgumentException
hatası veren API 24'ü çalıştıran Shield Tablet'ler için deneysel düzeltme. b/119484416
API'de yapılan, geriye dönük uyumluluğu bozan değişiklikler
- Firebase JobDispatcher'ın desteği, kullanımdan kaldırılacak olması nedeniyle sonlandırıldı. Bu nedenle, beta sürümüne geçiş yaparken
work-firebase
yapısı artık güncellenmeyecek. Gelecekte alternatif bir yöntem eklemeyi planlıyoruz. Payload
,Result
ile birleştirildi.Result
artık üç somut uygulamaya sahip bir "sealed class" olupResult.success()
(veyaResult.success(Data)
),Result.failure()
(veyaResult.failure(Data)
) veResult.retry()
aracılığıyla elde edilebilir.ListenableFuture
artıkPayload
yerineResult
ile sonuçlanıyor.Worker
,Data
çıkışı için getter ve setter yöntemlerine sahip değil.Operation.await()
veListenableFuture.await()
Kotlin uzantısı yöntemleri eklendi.Operation.getException()
,Operation.getThrowable()
olarak yeniden adlandırıldı.ContentUriTriggers
sınıfı ve onu referans alan yöntemler artık herkese açık olarak kullanılamaz.- API'yi kolaylaştırmak için
WorkManager
,WorkContinuation
veOneTimeWorkRequest
içindeki diğer varargs yöntemleri kaldırıldı. Derlemeyle ilgili sorunları düzeltmek için mevcut varargs'larınızıArrays.asList(...)
ile sarmalayabilirsiniz. Her yöntemin tek bağımsız değişkenli sürümlerini eklemeye devam ediyoruz. WorkContinuation.combine(OneTimeWorkRequest, *)
varyant kaldırıldı. Kafa karıştırıcı bir API sunuyorlardı. Mevcutcombine
yöntemleri daha anlaşılır.
Sürüm 1.0.0-alpha11
8 Kasım 2018
Bu sürümde, beta
tarihinde kararlı API olacak birçok değişiklik yer almaktadır.
Bu sürümde API'de zarar veren değişiklikler var. Lütfen aşağıdaki API'de Zarar Veren Değişiklikler bölümüne bakın.
API Değişiklikleri
work-runtime-ktx
, yeni birCoroutineWorker
sunuyor.WorkStatus
,WorkInfo
olarak yeniden adlandırıldı. İlgili tümgetStatus
yöntemi varyantlarının adı, ilgiligetWorkInfo
varyantları olarak değiştirildi. Bu, zarar veren bir değişikliktir.ListenableWorker.onStopped()
artıkWorkRequest
iptal edilip edilmediğini gösteren bir boole bağımsız değişkeni kabul etmiyor.WorkManager
artık bu ayrımı yapmıyor. Bu, zarar veren bir değişikliktir.androidx.work.test
paketi,androidx.work.testing
paketi olarak yeniden adlandırıldı. Bu, zarar veren bir değişikliktir.Constraints
üzerindeki ayarlayıcılar artık herkese açık API'nin bir parçası değildir. Bu, zarar veren bir değişikliktir.WorkerParameters.getTriggeredContentUris()
veWorkerParameters.getTriggeredContentAuthorities()
daha önce diziler döndürdü. Bu yöntemler artık Koleksiyonlar döndürüyor. Bu, zarar veren bir değişikliktir.ListenableWorker.onStartWork()
,ListenableWorker.startWork()
olarak yeniden adlandırıldı. Bu, zarar veren bir değişikliktir.WorkStatus
için oluşturucu artık herkese açık API'nin bir parçası değil. Bu, zarar veren bir değişikliktir.Configuration.getMaxJobSchedulerID()
veConfiguration.getMinJobSchedulerID()
, sırasıylaConfiguration.getMinJobSchedulerId()
veConfiguration.getMaxJobSchedulerId()
olarak yeniden adlandırılır. Bu, zarar veren bir değişikliktir.- API'nin ergonomisini iyileştirmek için herkese açık API'ye çok sayıda
@NonNull
notu eklendi. WorkManager.enqueueUniqueWork()
oluşturmadan benzersizOneTimeWorkRequest
'leri sıraya almak içinWorkManager.enqueueUniqueWork()
API'sini ekleyin.WorkContinuation
WorkManager
üzerindekienqueue
vecancel
yöntemlerinin tüm varyantları artık yeni birOperation
türü döndürüyor. Bu, zarar veren bir değişikliktir.enqueue
'nın tüm varyantları artıkWorkRequest
'ler için varargs'ı kabul etmiyor. Bu, zarar veren bir değişikliktir. Bunun yerine Koleksiyonlar'ı kullanın. Mevcut kodu değiştirmek içinArrays.asList()
simgesini kullanabilirsiniz. Bunu, API yüzeyini ve yöntem sayısını azaltmak için yaptık.- Bir işlem sırasında
initialize
WorkManager
işlemini birden fazla kez denemek artıkIllegalStateException
ile sonuçlanacak. Bu, zarar veren bir değişikliktir.
Hata Düzeltmeleri
work-runtime-ktx
yapıtındakiWorkRequest.Builder
artıkListenableWorker
kullanıyor. b/117666259 numaralı hata düzeltildi.PeriodicWork
için bir sonraki çalıştırma zamanının gelecekte olduğundan emin olun. b/118204399 numaralı hata düzeltildi.- Uygulama başlatılırken WorkManager kullanılırken olası disk G/Ç'sini kaldırın. b/117796731 numaralı hata düzeltildi.
WorkConstraintsTracker
içinde yarışma durumunu düzeltin. android-workmanager/issues/56 sorunu düzeltildi.
API'de yapılan, geriye dönük uyumluluğu bozan değişiklikler
WorkStatus
,WorkInfo
olarak yeniden adlandırıldı. İlgili tümgetStatus
yöntemi varyantlarının adı, ilgiligetWorkInfo
varyantları olarak değiştirildi.ListenableWorker.onStopped()
artıkWorkRequest
iptal edilip edilmediğini gösteren bir boole bağımsız değişkeni kabul etmiyor.WorkManager
artık bu ayrımı yapmıyor.androidx.work.test
paketi,androidx.work.testing
paketi olarak yeniden adlandırıldı.Constraints
üzerindeki ayarlayıcılar artık herkese açık API'nin bir parçası değildir.WorkerParameters.getTriggeredContentUris()
veWorkerParameters.getTriggeredContentAuthorities()
daha önce diziler döndürdü. Bu yöntemler artık Koleksiyonlar döndürüyor.ListenableWorker.onStartWork()
,ListenableWorker.startWork()
olarak yeniden adlandırıldı.WorkStatus
için oluşturucu artık herkese açık API'nin bir parçası değil.Configuration.getMaxJobSchedulerID()
veConfiguration.getMinJobSchedulerID()
, sırasıylaConfiguration.getMinJobSchedulerId()
veConfiguration.getMaxJobSchedulerId()
olarak yeniden adlandırılır.WorkManager
üzerindekienqueue
vecancel
yöntemlerinin tüm varyantları artık yeni birOperation
türü döndürüyor.enqueue
'nın tüm varyantları artıkWorkRequest
'ler için varargs'ı kabul etmiyor.- Bir işlem sırasında
initialize
WorkManager
işlemini birden fazla kez denemek artıkIllegalStateException
ile sonuçlanacak.
Sürüm 1.0.0-alpha10
11 Ekim 2018
Bu sürüm, geliştirici tarafından kontrol edilen asenkron çalışmayı destekler. Bu sürümde API'de zarar veren değişiklikler var. Lütfen aşağıdaki API'de Zarar Veren Değişiklikler bölümüne bakın.
WorkManager'ın alfa döneminin son aşamalarına girdiğini tahmin ediyoruz. Beta sürümünde API'nin kararlı olmasını bekliyoruz. Bu nedenle, lütfen sorun izleyicimizde geri bildiriminizi göndermek için biraz zaman ayırın.
API Değişiklikleri
- Önceden kullanılan tüm
deprecated
yöntemleri ve sınıfları (özellikle varsayılanWorker
oluşturucu) kaldırıldı. Bu, API'de yapılan ve geriye dönük uyumluluğu bozan bir değişikliktir. NonBlockingWorker
sınıfınıListenableWorker
olarak yeniden adlandırdı. Bu sınıf artık gizli olmayan bir herkese açık sınıf ve kullanıma hazır.ListenableWorker
, ana iş parçacığında çağrılanListenableFuture<Payload> onStartWork()
adlı bir soyut yönteme erişim sağlar. Çalışmayı başlatmak ve eşzamansız olarak işlemek sizin sorumluluğunuzdadır. İşlem tamamlandığındaListenableFuture
öğesini uygun şekilde güncellemeniz gerekir.ListenableFuture
referans uygulamaları,alpha02
içindekiFutures
paketinde sağlanır (WorkManager
bölümünün altına bakın).Worker
,ListenableWorker
'yi genişletir ve soyut birResult doWork()
yöntemiyle eskisi gibi çalışmaya devam eder.Worker
'daki bazı yöntemler ve üyelerListenableWorker
'a taşındı.- Yakında, Kotlin eşzamanlı rutinlerini (kararlı sürümler yayınlandıktan sonra) ve RxJava2'yi kullanan
ListenableWorker
için referans uygulamalar sunacağız.
- Arayüz
WorkerFactory
ve somut uygulamaDefaultWorkerFactory
,WorkerFactory
adlı bir soyut sınıfta birleştirildi. Uygulama, kullanıcı tarafından oluşturulan tümWorkerFactory
örnekleri için son çare olarak varsayılan yansıtma tabanlı davranışın çağrılmasını sağlar. Bu, zarar veren bir değişikliktir. WorkManager.synchronous()
veWorkContinuation.synchronous()
ile ilgili tüm yöntemler kaldırıldı. API'deki birçok yöntemin dönüş türü olarakListenableFuture<Void>
eklendi. Bu, API'de yapılan ve geriye dönük uyumluluğu bozan bir değişikliktir.- Artık
ListenableFuture
kullanarak senkron olarak alabilir ve gözlemleyebilirsiniz. Örneğin,WorkManager.enqueue()
daha öncevoid
değerini döndürürken artıkListenableFuture<Void>
değerini döndürüyor. İşlem tamamlandıktan sonra kodu çalıştırmak içinListenableFuture.addListener(Runnable, Executor)
veyaListenableFuture.get()
numaralı telefonu arayabilirsiniz. - Bu
ListenableFuture
simgelerinin, işlemin başarılı olup olmadığını değil, yalnızca tamamlandığını gösterdiğini unutmayın. Bu bilgileri öğrenmek için WorkManager yöntemlerini zincirlemeye devam etmeniz gerekir. - Bu nesneler üzerindeki
cancel()
çağrılarını yoksayıyoruz. Çünkü bu çağrılar kafa karıştırıcı ve mantık yürütmesi zor (işlemi mi yoksa ortaya çıkan çalışmayı mı iptal ediyorsunuz?). Bu durum,Future
sözleşmesi kapsamındadır. - Senkron
getStatus*
yöntemleriyle eşitliği korumak içinListenableFuture
varyantları sağladık veLiveData
döndüren mevcut olanları, adlarında açıkça "LiveData" olacak şekilde yeniden adlandırdık (ör.getStatusesByIdLiveData(UUID)
). Bu, API'de yapılan ve geriye dönük uyumluluğu bozan bir değişikliktir.
- Artık
Hata Düzeltmeleri
- alpha09'daki yinelenen
androidx-annotations.pro
dosyalarıyla ilgili bilinen sorun düzeltildi. Gradle dosyanızdanexclude 'META-INF/proguard/androidx-annotations.pro'
öğesini silerek önceki sürüm notlarındaki geçici çözümü kaldırabilirsiniz. - Yeni
Worker
oluşturucusunu korumak için ProGuard yapılandırmaları eklendi. b/116296569 - Çalışmanın
REPLACE
dığı yarış koşulunda olasıNullPointerException
düzeltildi. b/116253486 ve b/116677275 WorkContinuation.combine()
artık iki veya daha fazla yerine bir veya daha fazlaWorkContinuation
kabul ediyor. b/117266752
API'de yapılan, geriye dönük uyumluluğu bozan değişiklikler
- Önceden kullanılan tüm
deprecated
yöntemleri ve sınıfları (özellikle varsayılanWorker
oluşturucu) kaldırıldı. - Arayüz
WorkerFactory
ve somut uygulamaDefaultWorkerFactory
,WorkerFactory
adlı bir soyut sınıfta birleştirildi. WorkManager.synchronous()
veWorkContinuation.synchronous()
kaldırıldı.WorkManager.getStatus*()
yöntemleri artıkListenableFuture
döndürüyor.WorkManager.getStatus*LiveData()
dönüşLiveData
s.
Sürüm 1.0.0-alpha09
19 Eylül 2018
Bilinen Sorun
"İşletim sisteminden bağımsız "META-INF/proguard/androidx-annotations.pro" yoluyla birden fazla dosya bulundu" sorununu yaşıyorsanız lütfen alpha10'da sorunu düzeltirken geçici bir çözüm olarak gradle dosyanıza aşağıdakileri ekleyin:
Groovy
android { packagingOptions { exclude 'META-INF/proguard/androidx-annotations.pro' } }
Kotlin
android { packagingOptions { exclude("META-INF/proguard/androidx-annotations.pro") } }
Hata Düzeltmeleri
- "100 iş" hatası için gereken başka bir düzeltme eklendi. b/115560696
- Yarış koşulları nedeniyle oluşan yabancı anahtar kısıtlama hataları için bazı düzeltmeler eklendi. b/114705286
- Temel
Worker
için yetkilendirilmişConstraintTrackingWorker.onStopped(boolean)
çağrıları. b/114125093 - Firebase JobDispatcher için doğru minimum geri çekilme gecikmesini zorunlu kılın. b/113304626
- İyileştirilmiş iş parçacığı oluşturma, kitaplık içinde garanti edilir.
LiveData
öğesinin dahili olarak yinelenmesini önlemeyle ilgili olası sorun düzeltildi.
API Değişiklikleri
- Artık
WorkManager.Configuration
'nin bir parçası olarakWorkerFactory
belirterek çalışma zamanında kendiWorker
örneklerinizi oluşturabilirsiniz. Yedek fabrika, WorkManager'ın önceki sürümlerinin davranışıyla eşleşenDefaultWorkerFactory
'dır.Worker
veNonBlockingWorker
için varsayılan oluşturucular artık kullanımdan kaldırıldı olarak işaretleniyor. Lütfen yeni oluşturucuyu (Worker(Context, WorkerParameters)
) kullanın vesuper(Context, WorkerParameters)
işlevini çağırın. WorkManager'ın gelecekteki sürümlerinde varsayılan oluşturucu kaldırılacaktır.
- Yeni
ListenableFuture
yapısını dahili olarak kullanmaya başladık (Guava bağımlılıkları olmadan). Gelecek sürümlerde ListenableFutures'ı API'ye ekleyeceğiz. Bu değişiklik,NonBlockingWorker
'nın nihai olarak yeniden gösterilmesini destekleyecektir. TestDriver
'daTestDriver.setInitialDelayMet(UUID)
veTestDriver.setPeriodDelayMet(UUID)
üzerinden zamanlanmış işleri tetikleme özelliği eklendi. b/113360060
Zarar Veren Değişiklikler
- Varsayılan
Worker
veNonBlockingWorker
oluşturucular kullanımdan kaldırıldı. Lütfen en kısa sürede yeni oluşturucuya geçin. Gelecekteki sürümlerde varsayılan oluşturucu kaldırılacak.
Sürüm 1.0.0-alpha08
27 Ağustos 2018
Hata Düzeltmeleri
- WorkManager bileşenleri, doğrudan başlatma sırasında etkinleştirilmemeleri için doğrudan başlatma işleminden haberdar olmayan bileşenler olarak açıkça etiketlendi. Gelecekte, doğrudan başlatma işlemine duyarlı bir WorkManager sürümü sunacağız. b/112665532
- Yeniden denenmiş işin çalışmamasına neden olan sorun düzeltildi. b/112604021
- Periyodik çalışmanın tekrar tekrar yürütülmemesi sorunu (yukarıdaki sorunla ilgili) düzeltildi. b/112859683
- Uygulama işlemi zaten çalışıyorken geri çekilme politikalarına uyulur.
- Sınırın 10 KB olduğunu belirtmek için
Data
bölümündeki düzeltilmiş istisna mesajları. JobScheduler
işleme tamamlanmasında yaşanan gecikmeyi hesaba katmak içinConfiguration.setMaxSchedulerLimit(int)
maksimum değeri 50'ye düşürüldü. b/112817355
Sürüm 1.0.0-alpha07
16 Ağustos 2018
Hata Düzeltmeleri
- Sınırsız sayıda sonuç döndürebilen negatif sınırlara sahip olası bir SQL sorgusu düzeltildi.
- Yürütmesi tamamlanan işler artık diğer zamanlayıcılarda bu işin bekleyen tüm kopyalarını doğru şekilde iptal ediyor. Bu durum,
JobScheduler
iş sınırı aşılmasına neden oldu. b/111569265 ConstraintTracker
sürümündeConcurrentModificationException
sorunu düzeltildi. b/112272753Data.getBooleanArray(String)
veData.getIntArray(String)
işlevlerinin dönüş türü açıklamaları@NonNull
yerine@Nullable
olarak değiştirildi. b/112275229
API Değişiklikleri
Worker
artık yeni bir sınıf olanNonBlockingWorker
'ı sunuyor. Bu durum, mevcut kullanımı etkilemez. GelecekteNonBlockingWorker
, özel iş parçacığı çözümleri için tam olarak desteklenen bir öğe olacaktır.Data.getBooleanArray(String)
veData.getIntArray(String)
işlevlerinin dönüş türü açıklamaları@NonNull
yerine@Nullable
olarak değiştirildi. b/112275229- Kotlin uzantıları:
Map.toWorkData()
kullanımdan kaldırıldı ve mevcut API'lerle daha tutarlı olması için üst düzeyworkDataOf(vararg Pair<String, Any?>)
eklendi.
Sürüm 1.0.0-alpha06
1 Ağustos 2018
Hata Düzeltmeleri
- İş planlarken veritabanı kilidini önleme. b/111801342
PeriodicWork
uygulamasının, Doze modundayken planlandığı gibi çalışmamasına neden olan hata düzeltildi. b/111469837WorkManager
uygulamasının kilitlenmesine neden olan, kısıtlamaları izlerken oluşan yarış durumu düzeltildi. googlecodelabs/android-workmanager/issues/56WorkRequest.Builder#build()
kullanırken benzersizWorkRequest
ler oluşturun. b/111408337RescheduleReceiver
kullanımını yalnızcaWorkRequest
gerektiren durumlarda etkinleştirin. b/111765853
Sürüm 1.0.0-alpha05
24 Temmuz 2018
API Değişiklikleri
WorkManager.getInstance()
artık@Nullable
yerine@NonNull
ile açıklama ekleniyor. Bunun yerine, tekil öğe manuel başlatma durumlarında düzgün şekilde başlatılmazsa yöntem birIllegalStateException
oluşturur. Bu, API'de uyumsuzluğa neden olan bir değişikliktir.- WorkManager ayrıntı düzeyini kontrol edebilen yeni bir API (
Configuration.Builder.setMinimumLoggingLevel(int)
) eklendi. WorkManager varsayılan olarakLog.INFO
ve üzeri günlükleri kaydeder. Data.getString()
işlevinin imzası değiştirildi. Bu işlev artık varsayılan değer almıyor (değer örtülü olaraknull
). Bu, API'de yapılan ve geriye dönük uyumluluğu bozan bir değişikliktir.- Yalnızca dahili kullanım için gereken bazı yöntemler
@hide
olarak işaretlendi.Constraints
oluşturucusu,Data.toByteArray()
veData.fromByteArray(byte[])
buna dahildir. Bu, API'de yapılan ve geriye dönük uyumluluğu bozan bir değişikliktir.
Hata Düzeltmeleri
- WorkManager, otomatik yedeklemenin bilinen durumlarında artık iş yürütmüyor. Bu durum kilitlenmeye neden olmuş olabilir. b/110564377
JobScheduler
kullanılırkenPeriodicWorkRequest
lerin iki kez planlanması sorunu düzeltildi. b/110798652- Cihaz uyku moduna geçtikten sonra
PeriodicWorkRequest
ların doğru şekilde yürütülmemesi sorunu düzeltildi. b/111469837 - Firebase JobDispatcher kullanılırken yaşanan ilk gecikme sorunu düzeltildi. b/111141023
- Bazı olası yarış koşulları ve zamanlama sorunları düzeltildi.
- Artık ihtiyaç duyulmayan
BroadcastReceiver
'lar doğru şekilde boşaltıldı. - Uygulamalar zorla kapatıldıktan sonra yeniden başlatıldığında yeniden planlama performansı optimize edildi.
- Belirtilen
WorkRequest
öğesi sıraya alınmadan önce veya sonraTestScheduler.setAllConstraintsMet(UUID)
öğesinin çağrılmasına izin verilir. b/111238024
Zarar Veren Değişiklikler
WorkManager.getInstance()
artık@Nullable
yerine@NonNull
ile açıklama ekleniyor.Data.getString()
işlevinin imzası değiştirildi. Bu nedenle artık varsayılan değer almıyor (örtülü olaraknull
).- Yalnızca dahili kullanım için gereken bazı yöntemler
@hide
olarak işaretlendi.Constraints
oluşturucusu,Data.toByteArray()
veData.fromByteArray(byte[])
buna dahildir.
Sürüm 1.0.0-alpha04
26 Haziran 2018
Hata Düzeltmeleri
PeriodicWorkRequest
tabanlı uygulama kullanılırkenPeriodicWorkRequest
artık doğru şekilde yeniden planlanıyor.AlarmManager
- Tüm çalışanlar, çıkmaya zorlama veya yeniden başlatma işleminden sonra yeniden planlandığında ortaya çıkabilecek olası ANR sorunu düzeltildi. b/110507716
- Çeşitli WorkManager API'lerine nullability ek açıklamaları eklendi. b/110344065
- Çalışan yürütmesi sırasında oluşan yakalanmayan istisnaları günlüğe kaydetme. b/109900862
- WorkManager'ın eski bir sürümüne geri dönmeye karar vermeniz durumunda yıkıcı veritabanı taşımalarına izin verildi. b/74633270
- Örtülü etiketlerin kopyaları oluşturulursa taşıma işleminin kilitlenmesine neden olan sorun düzeltildi. Bu çok nadir görülen bir sorundur ve yalnızca aynı örtülü etiket biçimini kendiniz kullandıysanız ortaya çıkar.
Sürüm 1.0.0-alpha03
19 Haziran 2018
Hata Düzeltmeleri
AlarmManager
tabanlı uygulamada yarış durumu düzeltildi. b/80346526.Cihaz yeniden başlatıldıktan sonra
JobScheduler
kullanılırken yinelenen işler düzeltildi.İçerik URI'si tetikleyicileri olan işler artık yeniden başlatma işlemlerinde de devam ediyor. b/80234744
Doküman güncellemeleri. b/109827628, b/109758949, b/80230748
WorkRequest
yeniden sıraya alınırken kilitlenme sorunu düzeltildi. b/109572353.work-runtime-ktx
bağımlılığı kullanılırken Kotlin derleyici uyarıları düzeltildi.WorkManager artık
Room
sürüm1.1.1-rc1
'ü kullanıyor.
API Değişiklikleri
WorkContinuation.getStatuses()
'nin senkronize sürümü olangetStatusesSync()
eklendi.Worker
, kullanıcı tarafından başlatılan iptal ile işletim sistemi tarafından istenen geçici durdurma arasında ayrım yapabilir. Herhangi bir durdurma isteğinde bulunulduysaWorker.isStopped()
,true
değerini döndürür. Çalışma açıkça iptal edildiğindeWorker.isCancelled()
,true
değerini döndürür. b/79632247- API 28'de JobParameters#getNetwork() için destek eklendi. Bu,
Worker.getNetwork()
üzerinden kullanıma sunulur. Configuration.Builder.setMaxSchedulerLimit(int maxSchedulerLimit)
eklendi. BöyleceJobScheduler
veyaAlarmManager
adresine kaç iş gönderilebileceğini zorunlu kılabilirsiniz. Bu sayedeWorkManager
, mevcut tümJobScheduler
zaman aralıklarınızı kullanamaz.Configuration.setJobSchedulerJobIdRange(int minJobSchedulerId, int maxJobSchedulerId)
iş kimliklerininJobScheduler
WorkManager
için güvenli kullanım aralığını tanımlamaya yardımcı olanConfiguration.setJobSchedulerJobIdRange(int minJobSchedulerId, int maxJobSchedulerId)
eklendi. b/79996760Worker.getRunAttemptCount()
, belirli birWorker
için geçerli çalıştırma sayısını döndürür. b/79716516WorkManager.enqueueUniquePeriodicWork(String uniqueWorkName, ExistingPeriodicWorkPolicy existingPeriodicWorkPolicy, PeriodicWorkRequest periodicWork)
, benzersizPeriodicWorkRequest
'leri sıraya almanıza olanak tanır. b/79600647WorkManager.cancelAllWork()
, tümWorker
'leri iptal eder.WorkManager
öğesine bağlı kitaplıklar, dahili durumun ek olarak temizlenmesi içinWorkManager.getLastCancelAllTimeMillis()
öğesini kullanarak bu yöntemin en son ne zaman çağrıldığını sorgulayabilir.- Tamamlanan işlerin dahili veritabanından kaldırılması için
WorkManager.pruneWork()
eklendi. b/79950952, b/109710758
Davranış Değişiklikleri
- Tüm
WorkRequest
'ler için,Worker
'nin tam nitelikli sınıf adı olan örtülü bir etiket eklendi. Bu sayede,tag
olmadan veyaid
kullanılamadığındaWorkRequest
kaldırılabilir. b/109572351
Zarar Veren Değişiklikler
Worker.WorkerResult
,Worker.Result
olarak yeniden adlandırıldı.Worker.onStopped
artıkWorker
açıkça iptal edildiğindetrue
olarak ayarlanan ek birisCancelled
parametresine sahip.
Sürüm 1.0.0-alpha02
24 Mayıs 2018
Hata Düzeltmeleri
State.isFinished()
üzerindeNullPointerException
düzeltildi. b/79550068Worker
etkinliklerininApplication.onCreate()
tarihinde yeniden planlanmasına neden olan sorun düzeltildi. b/79660657- İşletim sisteminin izin verdiğinden daha fazla iş planlayabildiğiniz sorun düzeltildi. b/79497378
Worker
ile ilişkili uyanık kalma kilitlerinin temizlenmesi arka plan iş parçacığına taşındı.AlarmManager
uygulaması, bekleyen tüm işler tamamlandığında artık doğru şekilde temizleniyor.- İngilizce olmayan yerel ayarları etkileyen temizleme SQL sorguları düzeltildi. b/80065360
Data
'defloat
desteği eklendi. b/79443878Data.Builder.putAll()
artıkBuilder
öğesinin bir örneğini döndürüyor. b/79699162- Javadoc'de daha fazla bilgi ve belgelerde düzeltmeler. b/79691663
API Değişiklikleri
Worker
s can react to being stopped.Worker.isStopped()
,Worker
durdurulup durdurulmadığını kontrol etmek için kullanılabilir.Worker.onStopped()
, basit temizleme işlemleri yapmak için kullanılabilir.Worker.getTags()
API,Worker
ile ilişkili etiketlerinSet
değerini döndürür.- Süre ve
TimeUnit
kombinasyonu alan API'ler içinjavax.time.Duration
aşırı yüklemeleri eklendi. Bu,@RequiresApi(26)
tarafından korunmaktadır. WorkManager
uzantı,androidx.work.ktx
paketindenandroidx.work
paketine taşındı. Eski uzantılar kullanımdan kaldırıldı ve gelecekteki bir sürümde kaldırılacak.Configuration.withExecutor()
desteği sonlandırıldı. Bunun yerineConfiguration.setExecutor()
politikasını kullanın.
Sürüm 1.0.0-alpha01
8 Mayıs 2018
WorkManager, garantili ve kısıtlamalara duyarlı arka plan işlerinin planlanmasını ve yürütülmesini kolaylaştırır. Bu ilk sürüm 1.0.0-alpha01
.