WorkManager
Son Güncelleme | Kararlı Sürüm | Yayın Adayı | Beta Sürümü | Alfa Sürümü |
---|---|---|---|---|
7 Ağustos 2024 | 2.9.1 | - | - | 2.10.0-alfa02 |
Bağımlılıkları bildirme
WorkManager'a bağımlılık eklemek için Google Maven deposunu proje:
build.gradle
dosyasına ihtiyacınız olan yapıların bağımlılıklarını ekleyin.
uygulamanız veya modülünüz:
Modern
dependencies { def work_version = "2.9.1" // (Java only) implementation "androidx.work:work-runtime:$work_version" // Kotlin + coroutines implementation "androidx.work:work-runtime-ktx:$work_version" // optional - RxJava2 support implementation "androidx.work:work-rxjava2:$work_version" // optional - GCMNetworkManager support implementation "androidx.work:work-gcm:$work_version" // optional - Test helpers androidTestImplementation "androidx.work:work-testing:$work_version" // optional - Multiprocess support implementation "androidx.work:work-multiprocess:$work_version" }
Kotlin
dependencies { val work_version = "2.9.1" // (Java only) implementation("androidx.work:work-runtime:$work_version") // Kotlin + coroutines implementation("androidx.work:work-runtime-ktx:$work_version") // optional - RxJava2 support implementation("androidx.work:work-rxjava2:$work_version") // optional - GCMNetworkManager support implementation("androidx.work:work-gcm:$work_version") // optional - Test helpers androidTestImplementation("androidx.work:work-testing:$work_version") // optional - Multiprocess support implementation("androidx.work:work-multiprocess:$work_version") }
Kotlin uzantılarını kullanma hakkında bilgi için ktx dokümanlarına bakın.
Bağımlılıklar hakkında daha fazla bilgi için Derleme Bağımlılıkları Ekleme bölümüne bakın.
Geri bildirim
Geri bildiriminiz Jetpack'i iyileştirmemize yardımcı olacaktır. Yeni sorunlarla karşılaşırsanız veya fikir edinebilirsiniz. Daha fazla bilgi için lütfen mevcut sorunlar tıklayın. Oyunuzu mevcut bir soruna eklemek için yıldız düğmesini tıklayın.
Sorun İzleyici dokümanlarına bakın konulu videomuzu izleyin.
Sürüm 2.10
Sürüm 2.10.0-alpha02
17 Nisan 2024
androidx.work:work-*:2.10.0-alpha02
yayınlandı. Sürüm 2.10.0-alpha02 bu kaydetmeleri içerir.
API Değişiklikleri
WorkManager
içindeki yapılandırılabilir bir@RestrictTo
Tracer
aracılığıyla iz aralıkları yayınlama özelliği eklendi. (I17d7f, b/260214125)CoroutineWorker
ürününün yürütüldüğü görev dağıtıcının kontrolü içinConfiguration.workerCoroutineContext
e-posta adresine eklendi.WorkManager
içindeDispatchers.Default
kullanımından tamamen kaçınılmasına yardımcı olur. (Icd1b7)- Çalışanlar için özel istisna işleyiciler ekleme (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ı. ArtıkLiveData
,ListenableFuture
veyaFlow
döndüren yöntemler doğru null değer bilgileri sağlıyor. Bu durum, müşterilerin iş yönetiminde kaynak kodundaki boş değer varsayımları yanlışsa bu koddaki değer atanması gerekir. (If6757)
Sürüm 2.10.0-alpha01
24 Ocak 2024
androidx.work:work-*:2.10.0-alpha01
yayınlandı. 2.10.0-alpha01 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
- Geliştiriciler,
Constraints.setRequiredNetworkRequest
yöntemini kullanarak bir çalışan içinNetworkRequest
kısıtlamasını belirtebilir. Bu sayede, bu çalışanın hangi ağı çalıştıracağı konusunda daha ayrıntılı kontrol sahibi olursunuz.
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
yayınlandı. Sürüm 2.9.1 bu taahhütleri içerir.
Hata Düzeltmeleri
- İşin ön plan türü iptal edilmiş Android 14 ön koşul izinleri varken
WorkManager
ürününün uzun çalışan bir çalışanı (ör. ön plan çalışanı) yeniden başlatmaya çalışması nedeniyle oluşan kilitlenme düzeltildi. (b/333957914)
Sürüm 2.9.0
29 Kasım 2023
androidx.work:work-*:2.9.0
yayınlandı. 2.9.0 sürümü bu kaydetmeleri içerir.
2.8.0'dan bu yana önemli değişiklikler
Flow
sn. üzerinden gözlemlenebilirlik Çalışanların ilerleme durumu,LiveData
yerine artıkWorkManager.getWorkInfosFlow
ve benzer yöntemler aracılığıyla Akış üzerinden gözlemlenebilir.- Artık
WorkManager
, bir çalışanın daha önce neden durdurulduğuna dair ipucu sağlıyor.getStopReason()
yöntemi kullanılarak çalışan tarafından veyagetStopReason()
aracılığıylaWorkInfo
üzerinden sorgulanabilir. - Periyodik çalışanların
setNextScheduleTimeOverride
aracılığıyla hassas programlanması. Bu, bir sonraki Periyodik çalışma programının dinamik olarak hesaplanmasına olanak tanır. Bu program, uyarlanabilir yenileme süreleri, özel yeniden deneme davranışı gibi gelişmiş özellikleri uygulamak veya kullanıcı her sabah sabah uyanmadan önce bir haber feed'i çalışanının çalışmasını sağlamak için kullanılabilir. Şu anda çalışan bir çalışanın iptal edilmesini önlemek için bir sonrakini planlarkenExistingPeriodicWorkPolicy.UPDATE
bu tekniklerle kullanılmalıdır. - WorkManager'ın iş parçacığı eşleştirme üretim testi.
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 eş yordam API'leri, ek yapı çalışma zamanı-ktx'ten ana yapı iş çalışma zamanına taşınmıştır. Work-runtime-ktx şu anda boş.
API Değişiklikleri
stopReason
,WorkInfo
adlı çalışma alanına eklendi.stopReason
, çalışan çalıştırıldıktan sonra kullanılabilir hale gelir. Bir çalışan durdurulduğunda uygulamanın kendisi çok hızlı bir şekilde kapatılabileceğindenstopReason
raporlaması açısından kullanışlı olabilir. (I21386)Clock
öğesinin yapılandırma aracılığıyla ayarlanmasına ve Çalışan testlerinin yürütme sıralamasını artırmak için kullanılmasına izin ver. (Ic586e)ListenableWorker
öğesine, çalışanın neden durdurulduğuna dair ipucu verengetStopReason()
yöntemi eklendi. (I07060)- CloseGuard'ın kaynak sızıntısı hakkındaki uyarısını önlemek için
WorkManagerTestInitHelper#closeWorkDatabase()
eklendi. (Ia8d49) WorkInfo
öğesinin oluşturucusu şu anda herkese açık. Bu durum test sırasında yararlı olabilir. (Ia00b6, b/209145335)work-runtime-ktx
artık boş.CoroutineWorker
ve Kotlin'e özgü diğer yardımcı programlar artık çalışma zamanındaki ana yapıda kullanılabilir. (I71a9a)- Periyodik çalışma programlarının (I3b4da) doğru ayarlanmasına olanak tanıyan
setNextScheduleTimeOverride
yöntemi eklendi getNextScheduleTimeMillis
, planlanan çalışma zamanı bilgisini almak içinWorkInfo
görevine eklendi. (I797e4)- İlk gecikme ve periyodiklik bilgileri
WorkInfo
bölümüne eklenir. (I52f2f) getWorkInfosByTagFlow
,getWorkInfoByIdFlow
,getWorkInfosForUniqueWorkFlow
,getWorkInfosFlow
(If122a) yöntemleri aracılığıyla Akışlar aracılığıyla çalışanları gözlemleme yöntemi eklendiConstraints
' için eksik@RequiresApi(...)
ek açıklamaları eklendi kurucuları ve özellikleri. Bunlar,WorkManager
ürününün ilk sürümlerinden kalanConstraints.Builder
içindeki setterlerdeki karşılık gelen ek açıklamalarla uyumlu hale getirildi. (I6d7d2)- Yüksek yük altında eksik içerik güncellemelerinin olmaması için
WorkManager
artık içerik URI'si çalışanlarınaJobScheduler
'te garantili slotlar sağlamak için ayrı bir sınıra sahip. Sınır,Configuration.Builder.setContentUriTriggerWorkersLimit
aracılığıyla yapılandırılabilir. (Ic128f) - Kısıtlamalar
WorkInfo
bölümüne eklenir. (I162c0)
Sürüm 2.9.0-rc01
18 Ekim 2023
androidx.work:work-*:2.9.0-rc01
yayınlandı. 2.9.0-rc01 sürümü bu kaydetmeleri 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
yayınlandı. Sürüm 2.9.0-beta01 bu kaydetmeleri içerir.
API Değişiklikleri
WorkInfo.stopReason
veListenableWorker.stopReason
(I0cc00) tarafından döndürülen durdurma nedenleri için sabit değerler eklendi
Sürüm 2.9.0-alpha02
26 Temmuz 2023
androidx.work:work-*:2.9.0-alpha02
yayınlandı. 2.9.0-alpha02 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
- Artık
WorkManager
, bir çalışanın daha önce neden durdurulduğuna dair ipucu sağlıyor.getStopReason()
yöntemi kullanılarak çalışan tarafından veyagetStopReason()
aracılığıylaWorkInfo
üzerinden sorgulanabilir.
API Değişiklikleri
stopReason
,WorkInfo
adlı çalışma alanına eklendi. Çalışanın çalışmasındanstopReason
sonra kullanılabilir hale gelir. Bir çalışan durdurulduğunda uygulamanın kendisi çok hızlı bir şekilde kapatılabileceğindenstopReason
raporlaması açısından kullanışlı olabilir. (I21386)- Saat'in yapılandırma aracılığıyla ayarlanmasına ve Çalışan testlerinin yürütme sıralamasını yürütmek için kullanılmasına izin ver. (Ic586e)
ListenableWorker
öğesine, çalışanın neden durdurulduğuna dair ipucu verengetStopReason()
yöntemi eklendi. (I07060)- CloseGuard'ın kaynak sızıntısı hakkındaki uyarısını önlemek için
WorkManagerTestInitHelper#closeWorkDatabase()
eklendi. (Ia8d49)
Hata Düzeltmeleri
TestDriver
kullanarakoverrideNextScheduleTime
öğesini atlama özelliği eklendi ve test edilebilirliğiyle ilgili sorunlar düzeltildi. (Ic2905)
Sürüm 2.9.0-alpha01
7 Haziran 2023
androidx.work:work-*:2.9.0-alpha01
yayınlandı. 2.9.0-alpha01 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
Flow
sn. üzerinden gözlemlenebilirlik Çalışanların ilerleme durumu,LiveData
yerine artıkWorkManager.getWorkInfosFlow
ve benzer yöntemler aracılığıyla Akış üzerinden gözlemlenebilir.- Periyodik çalışanların
setNextScheduleTimeOverride
aracılığıyla hassas programlanması. Bu, bir sonraki Periyodik çalışma programının dinamik olarak hesaplanmasına olanak tanır. Bu program, uyarlanabilir yenileme süreleri, özel yeniden deneme davranışı gibi gelişmiş özellikleri uygulamak veya kullanıcı her sabah sabah uyanmadan önce bir haber feed'i çalışanının çalışmasını sağlamak için kullanılabilir. Şu anda çalışan bir çalışanın bir sonrakini planlanırken iptal edilmesini önlemek için bu tekniklerleExistingPeriodicWorkPolicy.UPDATE
kullanılmalıdır. WorkManager
, ileti dizisi eşleştirme üretim ile 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 eş yordam API'leri,work-runtime-ktx
ek yapıdanwork-runtime
ana yapıya taşındı.work-runtime-ktx
şu anda boş.
API Değişiklikleri
WorkInfo
öğesinin oluşturucusu şu anda herkese açık. Bu işlem testlerde yararlı olabilir. (Ia00b6, b/209145335)work-runtime-ktx
artık boş.CoroutineWorker
ve kotlin'e özgü diğer yardımcı programlar artık anawork-runtime
yapısında kullanılabilir. (I71a9a)- Periyodik çalışma programlarının (I3b4da) doğru ayarlanmasına olanak tanıyan
setNextScheduleTimeOverride
yöntemi eklendi getEarliestRunTimeMillis
adlı dosyagetNextScheduleTimeMillis
olarak yeniden adlandırıldı. (I2bd7a)- Bir sonraki planlanan çalışma zamanı bilgisi
WorkInfo
bölümüne eklendi. (I797e4) - İlk gecikme ve periyodiklik bilgileri
WorkInfo
bölümüne eklenir. (I52f2f) getWorkInfosByTagFlow
,getWorkInfoByIdFlow
,getWorkInfosForUniqueWorkFlow
,getWorkInfosFlow
(If122a) yöntemleri aracılığıyla Akışlar aracılığıyla çalışanları gözlemleme yöntemi eklendi- Kısıtlamalar'a eksik
@RequiresApi(...)
ek açıklamaları eklendi kurucuları ve özellikleri. Bunlar,WorkManager
ürününün ilk sürümlerinden kalanConstraints.Builder
içindeki setterlerdeki karşılık gelen ek açıklamalarla uyumlu hale getirildi. (I6d7d2) - Yüksek yük altında eksik içerik güncellemelerinin olmaması için
WorkManager
artık içerik URI'si çalışanlarınaJobScheduler
'te garantili slotlar sağlamak için ayrı bir sınıra sahip. Sınır,Configuration.Builder.setContentUriTriggerWorkersLimit
aracılığıyla yapılandırılabilir. (Ic128f) - Kısıtlamalar
WorkInfo
bölümüne eklenir. (I162c0)
Sürüm 2.8
Sürüm 2.8.1
22 Mart 2023
androidx.work:work-*:2.8.1
yayınlandı. Sürüm 2.8.1 bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Daha önce iki eşzamanlı yayını doğru şekilde işlemeyen
RescheduleReceiver
özelliğindeki ANR düzeltildi. (b/236906724)
Sürüm 2.8.0
8 Şubat 2023
androidx.work:work-*:2.8.0
yayınlandı. 2.8.0 sürümü bu kaydetmeleri içerir.
2.7.0'dan bu yana önemli değişiklikler
Yeni Özellikler
WorkRequests
öğesini rahatsız edici olmayan bir şekilde güncelleme olanağı eklendi. Bu sayede orijinal sıraya alma zamanı, zincir oluşturma vb. korunacak. Bu özellik hakkındaki ayrıntılı blog yayınına ve daha fazla bilgi içinWorkManager.updateWork
veExistingPeriodicWorkPolicy.UPDATE
için Javadocs'a bakın.
API Değişiklikleri
WorkManager.updateWork
, orijinal sıraya alma zamanını ve zincirlemeyi koruyarak çalışmayı güncellemek için eklendi.(I9a248, b/219446409)ExistingPeriodicWorkPolicy.UPDATE
eklendi. Bu politika, periyodik bir çalışmanın adıyla güncellenmesine olanak tanır. MevcutREPLACE
sürümüne benzer, ancak daha az rahatsız edicidir: Çalışır durumda olan bir çalışanı iptal etmez ve sıraya alma süresini korur. İlk gecikme ve süre, güncelleme süresi yerine orijinal sıraya alma zamanına göre hesaplanır.REPLACE
çok benzer olarak adlandırılanREPLACE
veUPDATE
arasındaki karışıklığı azaltmak için kullanımdan kaldırıldı.REPLACE
işlevinin önceki anlamını korumak istiyorsanız yeni eklenenCANCEL_AND_REENQUEUE
,REPLACE
ile bire bir aynı olacak. (I985ed, b/219446409)- setSchedulingExceptionHandler aracılığıyla
Consumer<Throwable>
sağlayan planlama istisnalarına müdahale etme özelliği eklendi) - WorkManager'ı başlatmaya çalışırken sorun olup olmadığını belirlemek için setInitializationExceptionHandler aracılığıyla
Consumer<Throwable>
sağlama özelliği eklendi. OneTimeWorkRequest
ve için satır içi yardımcılarPeriodicWorkRequest
,androidx.work:work-runtime-ktx
kuruluş birimindenandroidx.work:work-runtime
kuruluş birimine taşındı (I0010f, b/209145335)- Doğrudan
WorkQuery
oluşturmak içinWorkQuery.fromIds
,WorkQuery.fromStates
,WorkQuery.fromUniqueWorkNames
,WorkQuery.fromTags
yardımcı yöntemleri eklendi. (b/199919736) (If48f2, b/199919736) getForegroundInfo
,Worker
koleksiyonuna eklendi. (Ic1ead)RxWorker
Hem RxJava 2 hem de RxJava 3 için artıksetForeground
Completable
değeri döndürülüyor. Bu değer,ListenableFuture
döndürensetForegroundInfoAsync
yerine kullanılabilir.RxWorker
Hem RxJava 2 hem de RxJava 3 için,ListenableFuture
döndürengetForegroundInfoAsync
yerine kullanılabilecekgetForegroundInfo
Single
değeri döndürülür. (b/203851459)- Kısıtlamalar, Kotlin kullanıcılarına kolaylık sağlayan
Constraints.Builder
kullanmak yerine doğrudan oluşturulabilir. (Idc390, b/137568653) WorkManager
adlı cihazın başlatılıp başlatılmadığını kontrol etme özelliği eklendi. Ayrıca, kitaplık geliştiricilerininWorkManager
ürününün başlatıldığı yapılandırmayı alabilmesi için yeni birgetConfiguration()
API'si de eklendi. (I6eff3, b/212300336)
Hata Düzeltmeleri
- Çalışanların yük altındayken hemen çalışmasını önleyen açgözlü planlayıcı ile ilgili bir sorun düzeltildi. (I9686b, b/248111307)
- SDK 33 ve sonraki sürümlerde
POST_NOTIFICATIONS
izni verilmesini gerektiren API'lere@RequiresPermission
eklendi. (Ie542e, b/238790278) suspendCancellableCoroutine
kullanırkenListenableFuture
içindeCoroutineScope
içinde iptal işlemlerini uygulayın.
Sürüm 2.8.0-rc01
7 Aralık 2022
androidx.work:work-*:2.8.0-rc01
yayınlandı. Sürüm 2.8.0-rc01 bu kaydetmeleri içerir.
Yeni Özellikler
- Bu sürümde yeni özellik yok. Bu esasen bir sürüm yükseltmesidir
Sürüm 2.8.0-beta02
9 Kasım 2022
androidx.work:work-*:2.8.0-beta02
yayınlandı. Sürüm 2.8.0-beta02 bu kaydetmeleri içerir.
Hata Düzeltmeleri
WorkInfo
öğesinde daha önce yeni nesil bilgileri dikkate almayanequals
yöntemi düzeltildi. (4977cc)
Sürüm 2.8.0-beta01
5 Ekim 2022
androidx.work:work-*:2.8.0-beta01
yayınlandı. Sürüm 2.8.0-beta01 bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Çalışanların yük altındayken hemen çalışmasını önleyen açgözlü planlayıcı ile ilgili bir sorun düzeltildi. (I9686b, b/248111307)
Sürüm 2.8.0-alpha04
7 Eylül 2022
androidx.work:work-*:2.8.0-alpha04
yayınlandı. 2.8.0-alpha04 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- Çalışan neslini döndüren
WorkerInfo.getGeneration()
veWorkerParameters.getGeneration()
eklendi. Bir çalışanın,WorkManager.updateWork
veyaWorkManager.enqueueUniquePeriodicWork
aracılığıylaExistingPeriodicWorkPolicy.UPDATE
kullanılarak güncellenmiş olması durumunda birden fazla nesli var. Çalışan çalışıyorsa ve çalışan yürütülürken bir güncelleme olmuşsa bu yöntemin, şu anda çalışan çalışanından daha yeni bir nesli döndürülebileceğini unutmayın. (I665c5, b/219446409) (I128a9, b/219446409) WorkManager
ilk kullanıma hazırlanırken sorun olup olmadığını belirlemek için kullanılabilecek bir İstisna İşleyici olanInitializationExceptionHandler
eklendi. (I061de)
Sürüm 2.8.0-alpha03
10 Ağustos 2022
androidx.work:work-*:2.8.0-alpha03
yayınlandı. 2.8.0-alpha03 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
WorkRequests
öğesini rahatsız edici olmayan bir şekilde güncelleme olanağı eklendi. Bu sayede orijinal sıraya ekleme zamanı, zincir oluşturma vb. korunacak. Daha fazla ayrıntı içinWorkManager.updateWork
veExistingPeriodicWorkPolicy.UPDATE
bölümlerine bakın.
API Değişiklikleri
WorkManager.updateWork
, orijinal sıraya alma zamanını ve zincirlemeyi koruyarak çalışmayı güncellemek için eklendi.(I9a248, b/219446409)ExistingPeriodicWorkPolicy.UPDATE
eklendi. Bu politika, periyodik bir çalışmanın adıyla güncellenmesine olanak tanır. MevcutREPLACE
sürümüne benzer, ancak daha az rahatsız edicidir: Çalışır durumda olan bir çalışanı iptal etmez ve sıraya alma süresini korur. İlk gecikme ve süre, güncelleme süresi yerine orijinal sıraya alma zamanına göre hesaplanır.REPLACE
çok benzer adlara sahipREPLACE
veUPDATE
arasındaki karışıklığı azaltmak için kullanımdan kaldırıldı.REPLACE
işlevinin önceki anlamını korumak istiyorsanız yeni eklenenCANCEL_AND_REENQUEUE
,REPLACE
ile bire bir aynı olacak. (I985ed, b/219446409)SchedulingExceptionHandler
tanımlayarak planlama istisnalarına müdahale etme özelliği ekleyin. (I033eb)OneTimeWorkRequest
ve için satır içi yardımcılarPeriodicWorkRequest
,androidx.work:work-runtime-ktx
kuruluş birimindenandroidx.work:work-runtime
kuruluş birimine taşındı (I0010f, b/209145335)
Hata Düzeltmeleri
- SDK 33 ve sonraki sürümlerde POST_STATES 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
yayınlandı. 2.8.0-alpha02 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- Kısıtlamalar, Kotlin kullanıcıları için kullanışlı olan Oluşturucu'yu kullanmak yerine artık doğrudan oluşturulabilir. (Idc390, b/137568653)
WorkManager
adlı cihazın başlatılıp başlatılmadığını kontrol etme özelliği eklendi. Ayrıca, kitaplık geliştiricilerininWorkManager
ürününün başlatıldığı yapılandırmayı alabilmesi için yeni birgetConfiguration()
API'si de eklendi. (I6eff3, b/212300336)
Sürüm 2.8.0-alpha01
12 Ocak 2022
androidx.work:work-*:2.8.0-alpha01
yayınlandı. 2.8.0-alpha01 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- Yardımcı yöntemler
WorkQuery.fromStates
,WorkQuery.fromUniqueWorkNames
,WorkQuery.fromTags
, doğrudan WorkQuery oluşturmak için eklendi. (If48f2, b/199919736) - Gelecekteki SDK'lar için deneysel BuildCompat yöntemleri ekler (Iafd82, b/207528937)
getForegroundInfo
adlı yeriWorker
alanına ekleyin. (Ic1ead)- Doğrudan kimliklerden WorkQuery oluşturmak için
WorkQuery.fromIds
yardımcı yöntemleri eklendi. (Ie5bdf, b/199919736) - RxWorker'da artık
setForeground
,Completable
değeri döndürensetForegroundInfoAsync
yerine kullanılabilirListenableFuture
. (I85156) - RxJava 2 için RxWorker'da
getForegroundInfo
, şu andaSingle
değeri döndürengetForegroundInfoAsync
yerine kullanılabilirListenableFuture
. (I21c91, b/203851459) - RxJava 3 için RxWorker'da
getForegroundInfo
, şu andaSingle
değeri döndürengetForegroundInfoAsync
yerine kullanılabilirListenableFuture
. (I1ca8a) - RxWorker'da artık
setForeground
,Completable
değeri döndürensetForegroundInfoAsync
yerine kullanılabilirListenableFuture
. (I992a3, b/203851459)
Hata Düzeltmeleri
suspendCancellableCoroutine
kullanırkenListenableFuture
içindeCoroutineScope
içinde iptal işlemlerini uygulayın. (I77e63)
Sürüm 2.7
Sürüm 2.7.1
17 Kasım 2021
androidx.work:work-*:2.7.1
yayınlandı. Sürüm 2.7.1 bu kaydetmeleri içerir.
Hata Düzeltmeleri
suspendCancellableCoroutine
kullanılırkenCoroutineScope
içindeki iptallerListenableFuture
öğesine aktarılır. (I77e63)- Geciken iş istekleri hızlandırılmış olarak işaretlendiğinde hemen bir istisna yayınlanır. bef1762
Sürüm 2.7.0
13 Ekim 2021
androidx.work:work-*:2.7.0
yayınlandı. 2.7.0 sürümü bu kaydetmeleri içerir.
2.6.0'dan bu yana ö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'yi kullanıma sunuyor.setExpedited(...)
kullanılırken WorkManager, Android 12'den itibaren JobScheduler'daki hızlandırılmış işlere yetki verirken bir Ön Plan Hizmeti'ne yetki vererek 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
yayınlandı. 2.7.0-rc01 sürümü bu kaydetmeleri içerir.
Bu sürüm, androidx.work:work-*:2.7.0-beta01
sürümüyle aynı.
Sürüm 2.7.0-beta01
1 Eylül 2021
androidx.work:work-*:2.7.0-beta01
yayınlandı. Sürüm 2.7.0-beta01 bu kaydetmeleri içerir.
Yeni Özellikler
- WorkManager'ı başlatırken çok işlemli SQLite çakışmasını azaltın.
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()
özelliğini uygulamayan hızlandırılmış çalışanlar için daha iyi bir hata mesajı sağlayın. (aosp/1809376)
Sürüm 2.7.0-alpha05
21 Temmuz 2021
androidx.work:work-*:2.7.0-alpha05
yayınlandı. 2.7.0-alpha05 sürümü bu kaydetmeleri içerir.
Bu sürüm, WorkManager 2.6.0-beta02
sürümündeki hata düzeltmeleri de içerir.
Sürüm 2.7.0-alpha04
2 Haziran 2021
androidx.work:work-*:2.7.0-alpha04
yayınlandı.
Bu sürüm, 2.6.0-beta01 sürümündeki değişiklikleri de içerir.
API Değişiklikleri
ListenableWorker.setForegroundAsync()
desteği sonlandırıldı.- 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 almak içinListenableWorker.setForegroundAsync()
API'yi kullanabilir. ListenableWorker.setForegroundAsync()
çağrılırsa uygulama, ön plan hizmeti kısıtlamalarına tabi olduğunda ForegroundServiceStartNotAllowedException hatası verilir.
Hata Düzeltmeleri
- Hızlandırılmış işler yeniden planlandığında artık hızlandırılmazlar. Bunlar normal işler haline gelir.
Sürüm 2.7.0-alpha03
21 Nisan 2021
androidx.work:work-*:2.7.0-alpha03
yayınlandı. 2.7.0-alpha03 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
WorkManager
2.6.0-alpha02
'dan: Herhangi bir işlemde çalışabilen Çalışanlar için destek ekler. (Iaf200)WorkManager
2.6.0-alpha02
'dan: Uzak bir işleme bağlanabilen birRemoteListenableWorker
uygulaması olanRemoteCoroutineWorker
eklendi. (I30578)
API Değişiklikleri
- WorkManager
2.6.0-alpha02
'dan:TEMPORARILY_UNMETERED
ağ kısıtlaması için destek eklendi. (I08d5e) - WorkManager
2.6.0-alpha02
'dan:setProgressAsync()
için çok işlemli çalışan desteği. (Ib6d08) - WorkManager
2.6.0-alpha02
'dan:Diğerandroidx.startup.Initializer
öğelerinin bunları bağımlılık olarak kullanabilmesi içinWorkManagerInitializer
öğesini genel yapın. (I5ab11)
Sürüm 2.7.0-alpha02
10 Mart 2021
androidx.work:work-*:2.7.0-alpha02
yayınlandı. 2.7.0-alpha02 sürümü bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Android 12 hedeflenirken bir kilitlenmeyi düzeltmek için
PendingIntent
değişkenliğini müstehcen hale getirin. (b/180884673)
Sürüm 2.7.0-alpha01
18 Şubat 2021
androidx.work:work-*:2.7.0-alpha01
yayınlandı. 2.7.0-alpha01 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
WorkManager, Android 12'deki ön plan hizmet kısıtlamalarını dikkate alan yeni bir
WorkRequest.Builder.setExpedited(...)
API'yi kullanıma sunuyor.Uygulamalar arka planda çalışırken artık ön plan hizmeti başlatamaz. Bu nedenle, önceden bir ön plan hizmetinin yaşam döngüsüyle ilişkili olan uzun süreli işleri daha iyi desteklemek için uygulamalar
WorkRequest
öğelerini hızlandırılmış olarak işaretleyebilir.Bu API, kullanımdan kaldırılan
setForegroundAsync(...)
/setForeground(...)
API'lerinin yerini almaktadır.WorkManager,
setExpedited(...)
kullanılırken Android 12'den itibarenJobScheduler
ürününde hızlandırılmış işler için yetki verir ve ön plan hizmetlerine yetki vererek Android'in önceki sürümlerinde geriye dönük uyumluluk sağlar.
API Değişiklikleri
- Hızlandırılmış
WorkRequest
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
yayınlandı. 2.6.0 sürümü bu kaydetmeleri içerir.
2.5.0'dan bu yana önemli değişiklikler
WorkManager, WorkManager'ı başlatmak için artık
androidx.startup
kullanıyor. Geçmişte WorkManager'ı başlatmak içintools:node="remove"
ContentProvider
kullandıysanız aşağıdaki işlemleri gerçekleştirmeniz 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" />
Çalışanlar için her işlemde çalışabilen destek eklendi. (Iaf200)
Uzak bir işleme bağlanabilen RemoteListenableWorker uygulaması olan bir
RemoteCoroutineWorker
eklendi. (I30578)
Sürüm 2.6.0-rc01
4 Ağustos 2021
androidx.work:work-*:2.6.0-rc01
yayınlandı. 2.6.0-rc01 sürümü bu kaydetmeleri içerir.
Bu sürüm, androidx.work:work-*:2.6.0-beta02
sürümüyle aynı.
Sürüm 2.6.0-beta02
21 Temmuz 2021
androidx.work:work-*:2.6.0-beta02
yayınlandı. Sürüm 2.6.0-beta02 bu kaydetmeleri içerir.
Hata Düzeltmeleri
RemoteWorkManager
artıkRemoteWorkManagerService
ile olan bağlantıyı doğru şekilde kesiyor. Bu sayedeRemoteWorkManagerService
düzgün şekilde temizleniyor. aosp/1730694RemoteListenableWorker
artıkRemoteWorkerService
ile olan bağlantıyı doğru şekilde kesiyor. Bu sayedeRemoteWorkerService
düzgün şekilde temizleniyor. aosp/1743817ForceStopRunnable
artık yalnızca birincil uygulama işleminde çalışıyor. Bu bir optimizasyondur ve birden fazla işlem kullanan uygulamalar için kaynak çakışmasını önler. aosp/1749180, aosp/1761729
Sürüm 2.6.0-beta01
2 Haziran 2021
androidx.work:work-*:2.6.0-beta01
yayınlandı. Sürüm 2.6.0-beta01 bu kaydetmeleri içerir.
Bu sürüm dokümanla ilgili bazı küçük iyileştirmeler içerir. Sürüm büyük ölçüde 2.6.0-alpha02 ile aynıdır.
Sürüm 2.6.0-alpha02
21 Nisan 2021
androidx.work:work-*:2.6.0-alpha02
yayınlandı. 2.6.0-alpha02 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
Çalışanlar için herhangi bir işlemde çalışabilen destek ekler. (Iaf200)
Uzak bir işleme bağlanabilen
RemoteListenableWorker
uygulaması olan birRemoteCoroutineWorker
eklendi. (I30578)
API Değişiklikleri
TEMPORARILY_UNMETERED
ağ kısıtlaması için destek eklendi. (I08d5e)setProgressAsync()
için çok işlemli çalışan desteği. (Ib6d08)- Diğer
androidx.startup.Initializer
öğelerinin bunları bağımlılık olarak kullanabilmesi içinWorkManagerInitializer
öğesini herkese açık hale getirin. (I5ab11)
Sürüm 2.6.0-alpha01
24 Mart 2021
androidx.work:work-*:2.6.0-alpha01
yayınlandı. 2.6.0-alpha01 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
WorkManager
, WorkManager'ı başlatmak için artıkandroidx.startup
kullanıyor. Bu işlem daha önceandroidx.work.impl.WorkManagerInitializer
tarafından yapılıyordu. (aosp/1608813)İlk kullanıma hazırlamak için kullanılan
ContentProvider
tools:node="remove"
kullandıysanız yoksa aşağıdaki işlemleri gerçekleştirmeniz 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
hatasına neden olan bir OEM hatası için geçici bir çözüm ekleyin. (aosp/1587518)
Sürüm 2.5.0
Sürüm 2.5.0
27 Ocak 2021
androidx.work:work-*:2.5.0
yayınlandı. 2.5.0 sürümü bu kaydetmeleri içerir.
2.4.0'dan bu yana önemli değişiklikler
- Birden fazla işlem kullanan uygulamalar için yeni bir
:work:work-multiprocess
yapısı. Bu sayede iş isteği planlamasının tek bir işlemde birleştirilmesiyle performans kazanımları elde edilebilir.work-multiprocess
özelliğini kullanmak için şuna bağımlı bir bağımlılık tanımlayın:implementation "androidx.work:work-multiprocess:2.5.0"
- Configuration.Builder.setDefaultProcessName(String) yöntemini kullanarak birincil işlem atayın.
work-multiprocess
hizmetini kullanırken,WorkRequest
'lerinizi yönetmek için RemoteWorkManager'ı da kullanmak istersiniz. RemoteWorkManager, her zaman belirlenen sürece ulaşır. İşlem içi planlayıcı da belirlenen süreçte çalışır.
- Bazen
ActivityManager
, bir iş başlatmak içinJobService
örneğini örnekleyemez. Bu durum, temel işin platform hatası nedeniyle sessizce bırakılmasına neden olur.WorkManager
, işlerin mutabakatı tarafındanApplication
başlatılırken artık herWorkRequest
için yedek iş olmasını sağlıyor. Bu da iş yürütme güvenilirliğini büyük ölçüde artırır. (b/172475041, aosp/1489577) WorkManager
,WorkRequest
tamamlandıktan sonraWorkRequest
öğelerinin izlediği arabellek süresini azaltarak veritabanı büyümesini sınırlar. Süre7
gün önceydi.1
güne ve keepResultsForAtLeast süresine düşürüldü. (aosp/1419708)TestListenableWorkerBuilder
, testi kolaylaştırmak için artıkListenableWorker
uzatan yenidenleştirilmiş sınıfı desteklemektedir. (aosp/1443299, b/169787349)- WorkManager denetleyicisi artık Android Studio Arctic Fox ile kullanılabilir.
Sürüm 2.5.0-rc01
13 Ocak 2021
androidx.work:work-*:2.5.0-rc01
yayınlandı. Sürüm 2.5.0-rc01 bu kaydetmeleri içerir.
Hata Düzeltmeleri
WorkQuery
tabanlı API kullanılırken varlıklar güncellendikten sonragetWorkInfosLiveData
öğesinin doğru şekilde geçersiz kılınmamasına neden olan hata düzeltildi. (aosp/1540566, b/173769028)- Veritabanı işlemlerinin bazı nadir durumlarda başarılı olarak işaretlenmemesine neden olan hata düzeltildi. Bu durum, bazı Motorola cihazlarda sorunlara yol açmaktadır. (aosp/1535368, b/175944460)
- Ölü bir işlemin bağlantısını kaldırmaya çalışırken
NoSuchElementException
'lerin yoksayılmasına neden olan bir hata düzeltildi. (aosp/1530589) - Yalnızca durdurulmamışsa
ListenableWorker
işlevini durdurmak içinConstraintTrackingWorker
uygulamasını iyileştirin. (aosp/1496844, b/172946965) - androidx.work kitaplıklarını, Java 8'i (Ibd2f2) hedefleyecek şekilde güncelleyin
Sürüm 2.5.0-beta02
2 Aralık 2020
androidx.work:work-*:2.5.0-beta02
yayınlandı. Sürüm 2.5.0-beta02 bu kaydetmeleri içerir.
Hata Düzeltmeleri
androidx.work:work-multiprocess
aracında, belirlenen işleme bağlanmaya çalışırken WorkManager'ın çağrı iş parçacığını yanlışlıkla engellemesine neden olan hata düzeltildi. (aosp/1475538)PeriodicWorkRequest
öğelerinin doğru bir şekilde mutabakata varmamasına neden olan hata düzeltildi. (b/172475041, aosp/1489577)setForeground*
API'leri kullanılırken ön plan hizmeti durdurulurken karşılaşılan platform hatası için geçici bir çözüm eklendi. (b/170924044, aosp/1489901)
Sürüm 2.5.0-beta01
28 Ekim 2020
androidx.work:work-*:2.5.0-beta01
yayınlandı. Sürüm 2.5.0-beta01 bu kaydetmeleri içerir.
Yeni Özellikler
WorkManager
, işlemdeki planlayıcı tarafından toplanabilecekWorkRequest
sayısını otomatik olarak kısar. İstekler yine FIFO sırasına göre yürütülür. (aosp/1455228)WorkManager
, uygulamanın veri deposu hatalı bir durumda olduğunda kurtarmaya çalışır. (aosp/1463103)
Hata Düzeltmeleri
ListenableWorker
öğeleri kesintiye uğradığında daha sonra yeniden planlanabilmesi için bunları 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
yayınlandı. Sürüm 2.5.0-alpha03 bu kaydetmeleri 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
işlevini 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şaretli değil. (aosp/1432091):work:work-multiprocess
için ProGuard kurallarını düzeltin. (aosp/1432091)- Bir ön plan hizmetine bağlı uzun süren 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
yayınlandı. 2.5.0-alpha02 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
WorkInfo
öğelerini sorgulamak içinid
öğelerini kullanabilmek için WorkQuery'ye API ekleyin. (aosp/1412372, b/157335295)- WorkManager, yeni bir yapıyla (
androidx.work:work-multiprocess:*
) birden fazla işlem kullanan uygulamaları daha iyi destekler. Bu yeni yapı, büyük uygulamaların karşılaştığı birkaç sorunun çözülmesine yardımcı olur:- Genellikle her uygulama işleminde WorkManager'ın başlatılması gerekir. Bu çok iyi bir durum değildir çünkü SQLite çakışması başka sorunlara yol açar. WorkManager'da artık
Configuration#setDefaultProcessName(processName)
ile birincil uygulama işlemi atamak için kullanılabilecek yeni API'ler bulunuyor.processName
,packageName:processName
şeklinde görünen (ör.com.example:remote
) tam nitelikli bir işlem adıdır. - Bir dizi yeni API:
RemoteWorkManager
veRemoteWorkContinuation
ileenqueue
,cancel
vequery
iş istekleri. Bu API'ler, birden fazla işlemde SQLite çakışmasını önlemek içinLiveData
varyantlarını içermez.enqueue
,cancel
vequery
için yapılan tüm çağrılar AIDL kullanılarakprimary
uygulama işlemine yönlendiriliyor ve akıcı bir şekildeListenableFuture
. (aosp/1392657, aosp/1411210 aosp/1412215 aosp/1417713)
- Genellikle her uygulama işleminde WorkManager'ın başlatılması gerekir. Bu çok iyi bir durum değildir çünkü SQLite çakışması başka sorunlara yol açar. WorkManager'da artık
API Değişiklikleri
- WorkManager, artık eksik bağımlılığı olmayan tamamlanmış
WorkRequest
'leri daha agresif bir şekilde ayıklayor.7
gün olan arabellek süresi1
gün olarak değiştirildi. (aosp/1419708)
Hata Düzeltmeleri
- WorkManager, artık işlerin proaktif bir şekilde mutabık kalmasını sağlar. Böylece,
WorkManager
başlatıldığındaWorkRequest
veJobScheduler
işleri senkronize edilir. (aosp/1412794, b/166292069)
Sürüm 2.5.0-alpha01
19 Ağustos 2020
androidx.work:work-*:2.5.0-alpha01
yayınlandı. Sürüm 2.5.0-alpha01 bu kaydetmeleri içerir.
Yeni Özellikler
- Dahili API'lerde yapılan ve gelecekte
WorkManager
ile daha iyi araçlar sunmamızı sağlayan değişiklikler. Diğer güncellemeler için bizi takip etmeye devam edin.
Hata Düzeltmeleri
- Bazı cihazlarda ağ durumunu izlerken
SecurityException
'leri işleyin. (aosp/1396969)
Harici Katkı
- Zac Sweers (github/43) tarafından sunulan
ArrayCreatingInputMerger
dokümanlarını düzeltin.
Sürüm 2.4.0
Sürüm 2.4.0
22 Temmuz 2020
androidx.work:work-*:2.4.0
yayınlandı. 2.4.0 sürümü bu kaydetmeleri içerir.
2.3.0'dan bu yana önemli değişiklikler
WorkManager
'ın işlemdeki planlayıcısı artık daha yetenekli. Daha önce, süreçtekiScheduler
yalnızca gecikmeli olmayan ve kısıtlamalarına uyan işleri yürütmeyi dikkate alıyordu. Artık işlemdeki planlayıcı, PeriodicWorkRequests de dahil olmak üzere ileride yürütülebilecekWorkRequest
'leri izliyor. İşlemdekiScheduler
, planlama sınırlarını da dikkate almaz (ancak WorkManager tarafından kullanılanExecutor
boyutuyla sınırlı olmaya devam eder). Bu durum, uygulama ön plandayken artık çok daha fazla WorkRequest gerçekleştirebileceği anlamına gelir. Geciken çalışmanın ön planda yürütülmesini yönetmek içinWorkManager
, yapılandırılabilir yeni birRunnableScheduler
özelliğini de kullanıma sundu. (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) WorkQuery
kullanılarakWorkInfo
öğeleri için sorgulama yapma özelliği eklendi. Bu, geliştiricilerWorkInfo
öğelerini birden fazla özelliğin kombinasyonuyla sorgulamak istediklerinde yararlı olur. Daha fazla bilgi içinWorkQuery.Builder.fromStates(...)
,WorkQuery.Builder. fromTags(...)
veyaWorkQuery.Builder.fromUniqueWorkNames(...)
sayfalarına göz atın. (aosp/1253230, b/143847546)Aşağıdakileri kullanarak
WorkManager
adlı cihazdan teşhis bilgisi isteme özelliğini ekleyin:adb shell am broadcast -a "androidx.work.diagnostics.REQUEST_DIAGNOSTICS" -p "<your_app_package_name>"
Bu bilgiler aşağıdakiler dahil birçok yararlı bilgi sağlar:
- Son 24 saat içinde tamamlanan İş İstekleri.
- Şu anda RUNNING (ÇALIŞIYOR) olan WorkRequests (İş İstekleri).
- Planlanmış Çalışma İstekleri. (aosp/1235501)
APPEND
ile benzer olan ancak iptal edilen veya ön koşulları yerine getirilmeyen bir zincirin yerini alanExistingWorkPolicy.APPEND_OR_REPLACE
ekleyin. (b/134613984, aosp/1199640)Gelecekte yürütülmesi gereken İş İstekleri'ni izlemek için özel bir
RunnableScheduler
ekleme olanağı sağlayın. Bu, işlemdeki Planlayıcı tarafından kullanılır. (aosp/1203944)DelegatingWorkerFactory
kullanılırken yetki verilecek fabrikaları dinamik olarak ekleme desteği ekleyin. (b/156289105, aosp/1309745)BATTERY_NOT_LOW
kısıtlamalarının izlenmesini platformla daha uyumlu hale getirin. (aosp/1312583)İşlem içi planlayıcı, işlemin adını belirlemek için artık daha iyi API'ler kullanmaktadır. Bu özellik, birden fazla işlem kullanan uygulamaların daha iyi desteklenmesi için faydalıdır. (aosp/1324732)
Aşağıdakileri zorunlu kılan yeni Lint kuralları:
setForegroundAsync()
API'lerini kullanırken doğruforegroundServiceType
kullanımı. (b/147873061, aosp/1215915)- Doğrudan JobService API'lerini kullanırken WorkManager'ın kullanması gereken JobScheduler kimliklerini belirtme. aosp/1223567
- Varsayılan
WorkerFactory
kullanılırkenListenableWorker
uygulamaların artıkpublic
olmasını sağlayan yeni bir lint kuralı eklendi. (aosp/1291262)
ListenableWorker
tamamlanmadansetForegroundAsync()
numaralı telefona yapılan aramaların sinyali, artık döndürülenListenableFuture
üzerindeIllegalStateException
ile gösterilecek. (aosp/1262743)Worker
ön planı kesintiye uğratıldıktan sonraForegroundService
öğesinin durdurulmamasına neden olan hata düzeltildi. (b/155579898, aosp/1302153)WorkManager
ürününün bir Ön Plan Hizmeti'ne bağlıWorker
öğesinin 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
yayınlandı. Sürüm 2.4.0-rc01 bu kaydetmeleri içerir.
Hata Düzeltmeleri
- İşlem içi planlayıcı, işlemin adını belirlemek için artık daha iyi API'ler kullanmaktadır. Bu özellik, birden fazla işlem kullanan uygulamaların daha iyi desteklenmesi için faydalı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
serbest bırakıldı. Sürüm 2.4.0-beta01 bu kaydetmeleri içerir.
Hata Düzeltmeleri
Worker
ön planı kesintiye uğratıldıktan sonraForegroundService
öğesinin durdurulmamasına neden olan hata düzeltildi. (b/155579898, aosp/1302153)WorkManager
ürününün bir Ön Plan Hizmeti'ne bağlıWorker
öğesinin birden fazla örneğini yürütmeye çalıştığı hata düzeltildi (b/156310133, aosp/1309853)DelegatingWorkerFactory
kullanılırken yetki verilecek fabrikaları dinamik olarak ekleme desteği ekleyin. (b/156289105, aosp/1309745)BATTERY_NOT_LOW
kısıtlamalarının izlenmesini platformla daha uyumlu hale getirin. (aosp/1312583)
Sürüm 2.4.0-alpha03
29 Nisan 2020
androidx.work:work-*:2.4.0-alpha03
yayınlandı. 2.4.0-alpha03 sürümü bu kaydetmeleri içerir.
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 artıkpublic
olmasını sağlayan yeni bir lint kuralı eklendi. (aosp/1291262)
API Değişiklikleri
ListenableWorker
yürütmesi tamamlandıktan sonrasetProgressAsync()
çağrısı yapıldığında artıkListenableFuture
üzerinden birException
sinyali gösterilecek. (aosp/1285494)WorkQuery.Builder
artıkfinal
olarak işaretlendi. (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
'leri yoksayın. (b/153246136, aosp/1280813)
Sürüm 2.4.0-alpha02
1 Nisan 2020
androidx.work:work-*:2.4.0-alpha02
yayınlandı. 2.4.0-alpha02 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
WorkRequest
hemConstraints.setRequiresCharging(...)
hem deConstraints.setRequiresDeviceIdle(...)
gerektirdiğinde uyarı veren yeni bir Lint kuralı eklendi. Bazı cihazlar aynı anda hiçbir zaman şarj olmuyor ve boşta kalıyor. Bu nedenle, bu tür istekler beklenenden daha seyrek çalışır. (aosp/1253840)
API Değişiklikleri
WorkQuery
kullanılarakWorkInfo
öğeleri için sorgulama yapma özelliği eklendi. Bu, geliştiricilerWorkInfo
öğelerini birden fazla özelliğin kombinasyonuyla sorgulamak istediklerinde yararlı olur. Daha fazla bilgi içinWorkQuery.Builder withStates(...)
,WorkQuery.Builder withTags(...)
veyaWorkQuery.Builder withUniqueWorkNames(...)
sayfalarına göz atın. (aosp/1253230, b/143847546)ListenableWorker
tamamlanmadansetForegroundAsync()
numaralı telefona yapılan aramaların sinyali, artık döndürülenListenableFuture
üzerindeIllegalStateException
ile gösterilecek. (aosp/1262743)
Hata Düzeltmeleri
PeriodicWorkRequest
sn. 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
yayınlandı. Sürüm 2.4.0-alpha01 bu kaydetmeleri içerir.
Yeni Özellikler
WorkManager
'ın işlemdeki planlayıcısı artık daha yetenekli. Daha önce, süreç içindeki Planlayıcı, yalnızca gecikmiş olmayan ve kısıtlamalarına uyan işleri yürütmeyi düşünüyordu. Artık işlemdeki planlayıcı,PeriodicWorkRequest
dahil olmak üzere gelecekte yürütülebilecekWorkRequest
'leri izliyor. İşlemdeki Scheduler, planlama sınırlarını da Gözlemlemez (ancak WorkManager tarafından kullanılanExecutor
boyutuyla kısıtlıdır). Bu da uygulama ön plandayken artık çok daha fazlaWorkRequest
çalıştırılabileceği anlamına geliyor. (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 bilgiler, aşağıdakiler dahil birçok yararlı bilgi sunar:- Son 24 saat içinde tamamlanan İş İstekleri.
- Şu anda RUNNING (ÇALIŞIYOR) olan WorkRequests (İş İstekleri).
- Planlanmış Çalışma İstekleri. (aosp/1235501)
Aşağıdakileri zorunlu kılan yeni Lint kuralları:
setForegroundAsync()
API'lerini kullanırken doğruforegroundServiceType
kullanımı. (b/147873061, aosp/1215915)JobService
API'lerini doğrudan kullanırkenWorkManager
tarafından kullanılması gerekenJobScheduler
kimlikleri belirtiliyor. (aosp/1223567)
API Değişiklikleri
APPEND
öğesine benzer birExistingWorkPolicy.APPEND_OR_REPLACE
ekleyin. Ancak, ön koşulları iptal eden veya ön koşulları yerine getiremeyen bir zincirin yerine geçin. (b/134613984, aosp/1199640)Gelecekte yürütülmesi gereken
WorkRequest
'leri izlemek için özelRunnableScheduler
ekleme olanağı sağlayın. Bu, işlemdeki Planlayıcı tarafından kullanılır. (aosp/1203944)
Hata Düzeltmeleri
- Daha önce imkansız bir tür olan
Single<Void>
döndürdüğü içinsetProgress()
RxWorker
içinde kullanımdan kaldırıldı. Bunun yerineCompletable
döndüren yeni bir APIsetCompletableProgress()
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
yayınlandı. Sürüm 2.3.4 bu kaydetmeleri içerir.
Hata Düzeltmeleri
- 10 dakikalık yürütme süresi aşıldıktan sonra, uzun süre çalışan
Worker
işlemlerinin birden fazla örneğine neden olan hata düzeltildi. (aosp/1247484, b/150553353) - WorkManager'ın lint (
IssueRegistry
) sorunu için düzeltme. Katkıları için Slack'ten @ZacSweers 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
yayınlandı. Sürüm 2.3.3 bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Bir
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
serbest bırakıldı. Sürüm 2.3.2 bu kaydetmeleri içerir.
Hata Düzeltmeleri
- WorkManager'ın, Nadir durumlarda JobScheduler'daki 100 iş sınırını aşmasına neden olan sorunu düzeltir. (aosp/1226859, b/149092520)
- ConstraintControllers'da yarış durumu için düzeltme (aosp/1220100)
- Uzun süreli çalışanlar için yönetim ön planı hizmet yaşam döngüsü iyileştirildi. (aosp/1226295)
- Çalışan iptalinin ardından uzun süre çalışan Çalışanlar için Bildirimlerin iptali 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
yayınlandı. Sürüm 2.3.1 bu kaydetmeleri içerir.
Hata düzeltmeleri
- Bir ön plan
Service
etkin olduğunda çalışan uzun süreliWorker
'ler içinNotification
'lerin yaşam döngüsünü daha iyi yönetin. (aosp/1218539, b/147249312) WorkManager
artıkandroidx.sqlite:sqlite-framework:2.1.0
kararlılığına bağlı. (aosp/1217729)ForegroundInfo
içindekiforegroundServiceType
öğeleri kullanılırkenAndroidManifest.xml
içindeforegroundServiceType
belirtildiğinden emin olmak 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 bu yana hiçbir değişiklik yapılmadan yayınlandı. 2.3.0 sürümü bu kaydetmeleri içerir.
2.2.0'dan bu yana önemli değişiklikler
ListenableWorker#setForegroundAsync()
aracılığıyla uzun süreli veya önemli çalışmalar için destek.ListenableWorker#setProgressAsync()
üzerinden Çalışan İlerlemesi Desteği.- WorkManager, artık hataların erken yakalanmasına yardımcı olmak için kitaplığın bir parçası olarak ek lint kurallarını kullanıma sunuyor.
Sürüm 2.3.0-rc01
8 Ocak 2020
androidx.work:work-*:2.3.0-rc01
yayınlandı. Sürüm 2.3.0-rc01 bu kaydetmeleri içerir.
Bu sürüm, 2.3.0-beta02
ile aynı
Hata düzeltmeleri
work-testing
yapısı artıkwork-runtime-ktx
öğesine birapi
bağımlılığı tanımlamaktadır. (aosp/1194410)
Sürüm 2.3.0-beta02
18 Aralık 2019
androidx.work:work-*:2.3.0-beta02
yayınlandı. Sürüm 2.3.0-beta02 bu kaydetmeleri 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
androidx.work.impl.WorkManagerInitializer
içerik sağlayıcısınınAndroidManifest.xml
uygulamasından kaldırılmasını sağlayan bir lint kuralı eklendi. (aosp/1167007) PeriodicWorkRequest
içinenqueueUniquePeriodicWork()
yerineenqueue()
kullanıldığında bir hata analizi uyarısı eklendi. (aosp/1166032)
API değişiklikleri
ForegroundInfo
artıkListenableWorker.setForegroundAsync()
kullanılırken kullanılacaknotificationId
özelliğini belirtmenizi gerektiriyor. Bu, zarar veren bir değişikliktir. Bu sayede paralel olarak uzun süre çalışan birden fazlaWorker
ç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
- AlarmManager uygulamasında, alarmların doğru şekilde temizlenmemesine neden olan bir hata düzeltildi. (aosp/1156444)
- Boş bir
WorkRequest
listesinin yanlışWorkContinuation
zincirinin oluşturulmasına neden olmasına neden olan 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
yayınlandı. Sürüm 2.3.0-beta01 bu kaydetmeleri içerir.
Yeni özellikler
- İsteğe bağlı başlatma kullanılırken
androidx.work.Configuration.Provider
öğesinin yanlış uygulanması nedeniyle 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
yayınlandı. 2.3.0-alpha03 sürümü bu kaydetmeleri içerir.
Yeni özellikler
AndroidManifest.xml
içinde başka bir bileşen kaydettirmek zorunda kalmadanWorkRequest
öğelerini iptal etmeyi kolaylaştıranWorkManager.createCancelPendingIntent()
API'si eklendi. Bu API, özellikleNotification
kapsamındakiWorkRequest
öğelerini iptal etmeyi kolaylaştırır. Bunun 2.3.0'da yeni ön plan API'leriyle eşleştirilmesini bekliyoruz.- WorkManager artık
androidx.room:*:2.2.0
adlı ürünün kararlılığını kullanıyor.
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 gereksiz
setTransactionSuccessful()
çağrısından kaynaklanan hata düzeltildi. Bu durum nadiren yapılan taşıma işlemlerinde ortaya çıkar. (b/142580433, aosp/1141737)
Sürüm 2.3.0-alpha02
9 Ekim 2019
androidx.work:work-*:2.3.0-alpha02
yayınlandı. 2.3.0-alpha02 sürümü bu kaydetmeleri içerir.
Yeni özellikler
- WorkManager, artık işletim sistemi tarafından aktif tutulması gereken uzun süreli veya önemli çalışmaları destekliyor. Daha fazla bilgi için şuraya bakın:
ListenableWorker#setForegroundAsync()
(veya Kotlin içinCoroutineWorker#setForeground()
). (aosp/1133636)
API değişiklikleri
Data
alan adındakicontainsKey
APIhasKeyWithValueOfType
olarak yeniden adlandırıldı.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 adil bir şekilde çalışır. (aosp/1105766) - WorkManager, yalnızca çalışma tamamlanmamışsa
ListenableWorker#onStopped()
öğesini çağırır. (b/140055777) - WorkManager, artık bir çalışan kesintiye uğradığında veya terminal durumuna ulaştığında ilerleme bilgilerini kaldırıyor. (aosp/1114572)
Data
artık çok daha yararlı birtoString()
temsil ediyor. (b/140945323)Data
artık daha iyi birequals()
yöntemine sahip. AyrıcaArray
türleri içindeepEquals
desteklenir. (b/140922528)- WorkManager, artık dahili veritabanını ve tercih dosyalarını yedek olmayan bir dizinde depoluyor. (b/114808216)
Sürüm 2.3.0-alpha01
22 Ağustos 2019
androidx.work:work-*:2.3.September 5, 20190-alpha01
yayınlandı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.
Yeni özellikler
ListenableWorker
kullanıcıları artıksetProgressAsync()
API aracılığıyla ilerleme durumunu ayarlayabilir. Ayrıca,CoroutineWorker
içinde karşılık gelensuspend
-ingsetProgress
API'si veRxWorker
içinSingle<Void>
döndüren birsetProgress
API'si de eklendi. Çalışanlar bu yeni API'lerle ilerleme bilgilerini, karşılık gelen birgetProgress
API'si olanWorkInfo
üzerinden iletebilir. (b/79481554)Data
,Worker
ile ilişkili giriş verilerinin beklenen türde anahtarlara sahip olduğunu doğrulamak için kullanılabilen bircontainsKey()
API'sine sahip. (b/117136838)Data
artıkData.toByteArray()
veData.fromByteArray()
kullanılarak serileştirilebilir.Data
ile sürüm oluşturma garantisi verilmez. Bu nedenle, kullanmaya devam etmemeniz veya uygulamalar arasında IPC için kullanmamanız gerektiğini unutmayın. Yalnızca aynı uygulamanın birden çok işlemi arasında güvenle kullanılabilir.Configuration.setInputMergerFactory
aracılığıylaInputMergerFactory
belirtme özelliği eklendi. (b/133273159)
API değişiklikleri
- Bir
WorkerFactory
, daha önce çağrılanListenableWorker
örneğini döndürürse WorkManager, birIllegalStateException
örneği atar. (b/139554406) ListenableWorker
içinde yapılanonStopped()
geri araması veListenableFuture
iptali ile ilgili belgelerde güncellemeler. (b/138413671)
Hata düzeltmeleri
- İşlemdeki Scheduler artık
idle
kısıtlamasına sahipWorkRequest
'leri yoksayar. Bu istekler artık yalnızca cihaz aslındaidle
olduğundaJobScheduler
tarafından alınıyor. (aosp/1089779) TestScheduler
, testlerde dahili görev yürütücü için belirtilenExecutor
değerini artık doğru bir ş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
yayınlandı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.
Bu sürüm, androidx.work:work-*:2.2.0-rc01
ile aynı.
2.2.0'da 2.1.0'dan Yapılan Önemli Değişiklikler
androidx.work:work-gcm:2.2.0
, Google Play Hizmetleri 22'den küçük API düzeyleri için kullanıma sunulduğunda planlayıcı olarak GCMNetworkManager'ın kullanımını destekleyen yeni bir Maven yapısıdır. Bu, eski API sürümlerinde daha güvenilir ve performanslı arka plan işlemeye yardımcı olan isteğe bağlı bir bağımlılıktır. Uygulamanız Google Play Hizmetleri'ni kullanıyorsa otomatik olarak GCMNetworkManager desteği 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
yayınlandı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.
Hata düzeltmeleri
- AlarmManager uygulamasında, Hizmet'in erken kapanmasına ve nadir durumlarda da
RejectedExecutionException
oluşmasına neden olan bir hata düzeltildi. (aosp/1092374) (b/138238197). - Bazı cihazlarda
JobScheduler
API'leri kullanılırkenNullPointerException
için 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
yayınlandı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.
Hata düzeltmeleri
2.2.0-beta01
yılında kullanıma sunulan kasıtsız jakoko bağımlılığı kaldırıldı.
Sürüm 2.2.0-beta01
17 Temmuz 2019
androidx.work:work-*:2.2.0-beta01
yayınlandı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.
Yeni özellikler
androidx.work:work-gcm:2.2.0-beta01
, 22'den küçük API düzeyleri için Google Play Hizmetleri kullanılabilir olduğunda GCMNetworkManager'ın planlayıcı olarak kullanımını destekleyen yeni bir Maven yapısıdır. Bu, eski API sürümlerinde daha güvenilir ve performanslı arka plan işlemeye yardımcı olan isteğe bağlı bir bağımlılıktır. Uygulamanız Google Play Hizmetleri'ni kullanıyorsa otomatik olarak GCMNetworkManager desteği 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
IllegalArgumentException
için düzeltme yapılıyor. (aosp/1010188)
Sürüm 2.1.0
Sürüm 2.1.0
11 Temmuz 2019
androidx.work:work-*:2.1.0
yayınlandı. Bu sürüm, androidx.work:work-*:2.1.0-rc01
ile aynı.
2.0.1'den bu yana önemli değişiklikler
work-runtime-ktx
için artık Java 8 gerekiyor. Herhangi bir sorunla karşılaşırsanızbuild.gradle
sayfanıza şunları ekleyebilirsiniz:kotlinOptions { jvmTarget = "1.8" }
- WorkManager için, WorkManager'ı oluşturan isteğe bağlı başlatma eklendi
yalnızca referans alındığında. b/127497100 Projenizi isteğe bağlı başlatmaya göre ayarlamak için:
- Otomatik başlatıcıyı devre dışı bırakın.
- Özel
Application
nesnenizeConfiguration.Provider
uygulayın. - Tüm
WorkManager.getInstance()
referanslarını şu şekilde değiştir:WorkManager.getInstance(Context)
. Bu değişiklik kapsamındaWorkManager.getInstance()
desteği sonlandırıldı. Yeni bir çağrıyı çağırmak her zaman daha güvenlidirWorkManager.getInstance(Context)
değişim, şu anda yapmıyor olsanız bile isteğe bağlı başlatma.
PeriodicWorkRequest
cihazları artık ilk gecikmeleri destekliyor. URL parametrelerinin Google tarafından nasıl ele alınmasını istediğinizi belirtmek için Başlangıç ayarlamak içinPeriodicWorkRequest.Builder
üzerindesetInitialDelay
yöntemi b/111404867- Kayıtlı bir veya daha fazla
WorkerFactory
kullanıcısına yetki verme özelliği eklendi.DelegatingWorkerFactory
. b/131435993 - Şunlar için WorkManager tarafından kullanılan
Executor
'yi özelleştirme olanağı eklendi: tüm dahili defter tutma işlemleriniConfiguration.Builder.setTaskExecutor
aracılığıyla gerçekleştiriyor. - Test edilebilir
Worker
veListenableWorker
birim oluşturma olanağı eklendi kullanarakTestWorkerBuilder
veTestListenableWorkerBuilder
kullanarakwork-testing
yapı.work-testing
işlevinin artık bir bağımlılık olarak Kotlin'i çektiğini ve varsayılan olarak çeşitli Kotlin uzantılarını içerir.
- Çalıştırma denemesi sayısı
WorkInfo
olarak eklendi. b/127290461 Data
türleri artık baytları ve bayt dizilerini depolayıp alabilir. Bu ŞUNLARI YAPMAZData
nesnenin maksimum boyutunu değiştirin.- WorkManager artık bazı veritabanı sorunlarını düzeltecek olan
Room 2.1.0
hizmetini kullanıyor.
Sürüm 2.1.0-rc01
27 Haziran 2019
androidx.work:work-*:2.1.0-rc01
yayınlandı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.
Hata düzeltmeleri
- Yedekleme devam ederken
JobScheduler
ile işler yürütülürken uygulamanın kilitlenmesine neden olan bir hata düzeltildi b/135858602.
Sürüm 2.1.0-beta02
20 Haziran 2019
androidx.work:work-*:2.1.0-beta02
yayınlandı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.
Hata düzeltmeleri
TestListenableWorkerBuilder
,ListenableWorker
örneklerini oluştururken artık doğruWorkerFactory
değerini kullanıyor. b/135275844- İşlemin ölümü nedeniyle
WorkRequest
saniyeler için yürütme aralıklarında kaymalara neden olan bir hata düzeltildi. b/135272196
Sürüm 2.1.0-beta01
13 Haziran 2019
androidx.work:work-*:2.1.0-beta01
yayınlandı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.
Hata düzeltmeleri
- WorkManager artık bazı veritabanı sorunlarını düzeltecek olan
Room 2.1.0
hizmetini kullanıyor. - Ana iş parçacığında bazı başlangıç diski G/Ç'leri kaldırıldı.
- Kısıtlama izlemedeki olası bir kilitlenme sorunu düzeltildi. b/134361006
- WorkManager ile ilişkilendirilen geçersiz işler önleme amaçlı olarak iptal edildi. b/134058261
- Hatalı çalışan cihazlar için JobScheduler API'lerine bazı savunma çağrıları eklendi.
Sürüm 2.1.0-alpha03
5 Haziran 2019
androidx.work:*:2.1.0-alpha03
yayınlandı.
Hata düzeltmeleri
PeriodicWorkRequest
için dokümanlar iyileştirildi.WorkManagerTestInitHelper
artık testler için doğru arka plan yürütücüyü kullanıyor.- Bazı cihazlarda büyük işlemlerle çalışırken SQLite sorunları için düzeltmeler. (b/130182503)
- WorkManager'ın bağımlılıkları artık daha ayrıntılı. (b/133169148).
- WorkManager kullanarak iş planlarken
JobScheduler
uygulamasında ortaya çıkan OEM'e özgü hatalara geçici çözüm. - AlarmManager tabanlı planlayıcıda, daha önce nadir görülen kilitlenmelere neden olan hizmet ömürlerine göre yapılan iyileştirmeler. (b/133313734)
Sürüm 2.1.0-alpha02
16 Mayıs 2019
WorkManager 2.1.0-alpha02 yayınlandı. Bu sürüm birkaç yeni API içerir.
API Değişiklikleri
PeriodicWorkRequest
cihazları artık ilk gecikmeleri destekliyor. URL parametrelerinin Google tarafından nasıl ele alınmasını istediğinizi belirtmek için Başlangıç ayarlamak içinPeriodicWorkRequest.Builder
üzerindesetInitialDelay
yöntemi b/111404867Kayıtlı bir veya daha fazla
WorkerFactory
kullanıcısına yetki verme özelliği eklendi.DelegatingWorkerFactory
. b/131435993Şunlar için WorkManager tarafından kullanılan
Executor
'yi özelleştirme olanağı eklendi: tüm dahili defter tutma işlemleriniConfiguration.Builder.setTaskExecutor
aracılığıyla gerçekleştiriyor.WorkRequest.keepResultsForAtLeast
ile ilgili belgeler iyileştirildi (b/130638001), isteğe bağlı başlatma vePeriodicWorkRequest.Builder
(b/131711394).
Sürüm 2.1.0-alpha01
24 Nisan 2019
WorkManager 2.1.0-alpha01 yayınlandı. Bu sürüm birkaç yeni API içerir. Bu sürümden itibaren, ileride sunulacak yeni özelliklerin 1.x sürümüne geri taşınmaz. 2.x sürümüne geçmenizi öneririz.
API Değişiklikleri
- WorkManager için, WorkManager'ı oluşturan isteğe bağlı başlatma eklendi
yalnızca referans alındığında. b/127497100 Projenizi isteğe bağlı başlatmaya göre ayarlamak için:
- Otomatik başlatıcıyı devre dışı bırakın.
- Özel
Application
nesnenizeConfiguration.Provider
uygulayın. - Tüm
WorkManager.getInstance()
referanslarını şu şekilde değiştir:WorkManager.getInstance(Context)
. Bu değişiklik kapsamındaWorkManager.getInstance()
desteği sonlandırıldı. Yeni bir çağrıyı çağırmak her zaman daha güvenlidirWorkManager.getInstance(Context)
değişim, şu anda yapmıyor olsanız bile isteğe bağlı başlatma.
- Test edilebilir
Worker
veListenableWorker
birim oluşturma olanağı eklendi kullanarakTestWorkerBuilder
veTestListenableWorkerBuilder
kullanarakwork-testing
yapı.work-testing
artık bir bağımlılık olarak Kotlin'i çeker, ancak aynı zamanda varsayılan olarak çeşitli Kotlin uzantılarını içerir.
- Çalıştırma denemesi sayısı
WorkInfo
olarak eklendi. b/127290461 Data
türleri artık baytları ve bayt dizilerini depolayıp alabilir. Bu ŞUNLARI YAPMAZData
nesnenin maksimum boyutunu değiştirin.CoroutineWorker.coroutineContext
kullanımdan kaldırıldı. Bu alan yanlıştıCoroutineDispatcher
olarak yazıldı; buna ihtiyacınız kalmaz, coroutineContext'i kendiniz askıya alma işlevinin gövdesine koyabilirsiniz.RxWorker.createWork()
veRxWorker.getBackgroundScheduler()
şimdi@NonNull
dönüş türüyle belirtilir.
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 ile aynı 2.0.1-rc01.
Sürüm 2.0.1-rc01
3 Nisan 2019
WorkManager 2.0.1-rc01 yayınlandı. Bu sürüm bazı hata düzeltmeleri içeriyor. Örneğin, kullanıyorsanız, bu değişikliklerden bazıları 1.0.1-rc01.
Hata Düzeltmeleri
- Robolectric testleri artık WorkManager ile düzgün şekilde çalışıyor. b/122553577
- iş ilanı öncesi API'leri nasıl kullanacağınızı öğreneceksiniz. b/129226383
- Uzun iş zincirleriyle çalışan bir
StackOverflowError
düzeltildi. b/129091233 PeriodicWorkRequest
sn. için dokümanlar, esnek sürenin API 23'te desteklenmiyor.- Kotlin dokümanlarındaki 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ığı olan 1.0.0 kararlı AndroidX sürümü. Önerilerimiz: eski 1.x sürümleri yerine bu sürümü hedefliyor. Etkin olanların tümü 2.x ve 1.x sürümünü hedefleyen bir geliştirme, yalnızca sınırlı bir süre için geçerli.
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ümle aynı ancak AndroidX bağımlılıkları var. Bu, 2.0.0 kararlı sürümüne ulaştığında yeni bir sürüm kullandığınızdan emin olun. Eski 1.x sürümleri, yalnızca hata düzeltmeleri. Tüm etkin geliştirmeler 2.x sürümünü hedefleyecektir.
AndroidX Öncesi Bağımlılıkları
Referans belgeler: Java
Eski
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 ile aynı 1.0.1-rc01.
Kullanıcıların aşağıdaki nedenlerden dolayı WorkManager 2.x'e geçmelerini önemle tavsiye ettiğimizi lütfen unutmayın. İleride 1.x dalında çok az güncelleme olacaktır. Yeni API'ler 1.x kitaplığı için de yayınlanmayacaktır.
Sürüm 1.0.1-rc01
2 Nisan 2019
WorkManager 1.0.1-rc01 yayınlandı. Bu sürüm bazı hata düzeltmeleri içeriyor.
Hata Düzeltmeleri
- Robolectric testleri artık WorkManager ile düzgün şekilde çalışıyor. b/122553577
- iş ilanı öncesi API'leri nasıl kullanacağınızı öğreneceksiniz. b/129226383
- Uzun iş zincirleriyle çalışan bir
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 ile aynıdır.
Sürüm 1.0.0-rc02
21 Şubat 2019
Bu, WorkManager'ın 1.0.0 kararlı sürümü için ikinci sürüm adayıdır. Bu sürüm iki hata düzeltmesi içeriyor.
Hata Düzeltmeleri
Uygulama kilitlenmesinden sonra
Worker
işlemleri artık doğru bir şekilde planlandı. b/124546316İşaretlenmemiş
Exception
gönderenWorker
öğeleri artık doğru şekildeFAILED
ve artık uygulama işlemi kilitlenmez.
Sürüm 1.0.0-rc01
14 Şubat 2019
Bu, WorkManager'ın 1.0.0 kararlı sürümü için bir sürüm adayıdır. Bu sürüm bir hata düzeltmesi içeriyor.
Hata Düzeltmeleri
- AlarmManager tabanlı uygulama artık
flex
penceresine doğru şekilde uyuyor PeriodicWorkRequests için de geçerli. b/124274584
Sürüm 1.0.0-beta05
6 Şubat 2019
Bu sürüm bazı hata düzeltmeleri içeriyor.
Hata Düzeltmeleri
- API 23'te
JobScheduler.getPendingJob(...)
özelliğinin kullanıldığı bir durum düzeltildi. b/123893059 - Android 5.1 (API düzeyi 22) çalıştıran cihazlarda bir
NullPointerException
düzeltildi veya daha düşük olmasını sağlayın. b/123835104
Sürüm 1.0.0-beta04
4 Şubat 2019
Bu sürüm bazı hata düzeltmeleri içeriyor.
Hata Düzeltmeleri
- AlarmManager tabanlı uygulama için PeriodicWork planlaması iyileştirildi.
- WorkManager'ın aşağıdaki durumlarda kısıtlamaları doğru şekilde izleyememesine neden olan durum düzeltildi: yardımcı olur. b/123379508
- WorkManager'ın, aşağıdaki durumlarda işlem ölümü üzerinde çalışmayı tekrar deneyememesine neden olan durum düzeltildi: yardımcı olur. b/123329850
- AlarmManager tabanlı uygulama.
Sürüm 1.0.0-beta03
25 Ocak 2019
Bu sürüm bazı hata düzeltmeleri içeriyor.
Hata Düzeltmeleri
- Çalışmanın yürütülmemesine neden olan bir regresyonu
1.0.0-beta02
kullanıma sunduk uygun şekilde ele alacağız. b/123211993 - Çalışmanın geri çekilme zamanlamasını düzgün bir şekilde yerine getirmemesine neden olan durum düzeltildi. b/122881597
- Android 5.1 (API) çalıştıran cihazlarda
ConcurrentModificationException
sorunu düzeltildi veya) ya da daha düşük olabilir. Bu,1.0.0-beta02
çözümündeki düzeltmenin devamıdır. b/121345393 - Manifest'imizde eksik olan bazı bileşenlere
exported=false
eklendi ekleyebilirsiniz. - WorkManager'ın OS ile nasıl etkileşimde bulunduğuna dair paket seviyesinde belgelere göz atın.
Sürüm 1.0.0-beta02
15 Ocak 2019
Bu sürüm bazı hata düzeltmeleri içeriyor.
Hata Düzeltmeleri
- Periyodik işlerin aralık başına birden fazla kez yürütülebileceği sıra dışı bir durum düzeltildi (API düzeyi 23) çalıştıran cihazlarda. b/121998363
- Android 5.1 (API) çalıştıran cihazlarda
ConcurrentModificationException
sorunu düzeltildi 22. seviye) veya daha düşük bir düzeyde olduğunu varsayalım. b/121345393 - Cihazlarda Kısıtlamalar karşılanmadığında işin yürütülmesinde hatalar düzeltildi Android 5.1 (API düzeyi 22) veya daha düşük bir sürümü çalıştıran. b/122578012
- Bazı sıra dışı durumlarda daha hızlı olması için iş tamamlama işlemi optimize edildi. b/122358129
- Birden fazla örnekteki olası yarış koşullarını ele almak için bir değişiklik eklendi
ve WorkManager'ın kullandığı
LiveData
tanedir. 1.1.1-rc01
yerine1.1.1
Room
bağımlılığı kullanılacak şekilde taşındı; bu sürümleri aynı. b/122578011
Sürüm 1.0.0-beta01
19 Aralık 2018
Bu sürümde API değişikliği bulunmuyor; bundan sonra, kritik bir sorun olmadığı sürece WorkManager'ın bir sonraki sürüme kadar API'de kararlı kalması beklenmektedir. Bu sürüm bazı hata düzeltmeleri içeriyor.
Hata Düzeltmeleri
- Başarıyla tamamlanmış üst çalışmanın daha önce iptal edilen alt öğeleri artık çalıştırılmayacak. b/120811767
- Uygun şekilde başlatılmış günlük kaydı sınıfları (öncelikle testler sırasında gösterilir).
Sürüm 1.0.0-alpha13
12 Aralık 2018
Bu sürüm, bazı Kotlin kullanıcıları için faydalı olabilecek küçük bir API değişikliği içerir.
API Değişiklikleri
androidx.work.Result
,ListenableWorker
iç sınıfı olacak. Bu, Kotlin'in üst düzeyResult
sınıfıyla çakışmaların yeniden düzenlenmesini önler. Bu, API'de zarar veren bir değişikliktir. b/120564418
Çağlık API Değişiklikleri
androidx.work.Result
,ListenableWorker
iç sınıfı olacak.
Sürüm 1.0.0-alpha12
5 Aralık 2018
Bu sürümde zarar veren bazı API değişiklikleri var; lütfen aşağıdaki bozan API değişiklikleri bölümüne bakın. Bu sürüm büyük olasılıkla ilk beta sürümümüz olarak yayınlanacaktır. alpha12
ayrıca kapsamlı doküman güncellemeleri içeriyor.
API Değişiklikleri
- Yeni bir yapı olan
work-rxjava2
,RxWorker
ile tanışın. Bu,Single<Payload>
beklenen birListenableWorker
. - Firebase JobDispatcher desteği, yakında kullanımdan kaldırılacağı için kaldırılmıştır. Bu,
work-firebase
yapısının artık beta sürümüne geçilmeye başlanmayacağı anlamına gelir. Gelecekte bir alternatif eklemeyi planlıyoruz. Payload
,Result
olarak birleştirildi.Result
artık "mühürlü sınıf"Result.success()
(veyaResult.success(Data)
),Result.failure()
(ya daResult.failure(Data)
) veResult.retry()
yoluyla elde edebileceğiniz üç somut uygulamayla birlikte.ListenableFuture
'leriniz artıkPayload
yerineResult
ile sonuçlanıyor.Worker
öğeleri,Data
çıkışı için alıcı ve belirleyici 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 API 26 gerektirir.Operation.await()
veListenableFuture.await()
Kotlin uzantı yöntemleri eklendi.Operation.getException()
adlı dosyaOperation.getThrowable()
olarak yeniden adlandırıldı. Bu, zarar veren bir değişikliktir.ContentUriTriggers
sınıfı ve buna referans veren 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
kapsamındaki diğer varargs yöntemleri kaldırıldı. Derleme sorunlarını düzeltmek için mevcut değişkenleriniziArrays.asList(...)
ile sarmalayabilirsiniz. Yine de her yöntemin tek bağımsız değişkenli sürümlerini dahil ederiz. 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ırdır. Bu, zarar veren bir değişikliktir.
Hata Düzeltmeleri
- Marshmallow öncesi uygulamalar, devam etmekte olan bir görevin işlem ölümünden kurtarmada artık daha güvenilirdir.
observeForever
aracılığıyla gözlemlenenLiveData
, WorkManager aracılığıyla izlenir. Bu, Oda kitaplığı düzeltmesinin geri bağlantı noktasıdır. b/74477406- Serileştirilmiş nesne maksimum boyutunu aşarsa
Data.Builder.build()
artık bir istisna yayınlıyor. Bu durum daha önce yalnızca düzgün bir şekilde işleyemediğiniz arka plan ileti dizilerinde gerçekleşiyordu. - Durdurulan ve iptal edilen çalışmaların daha farklı şekilde tespit edilmesi;
getWorkInfoById()
,ListenableWorker.onStopped()
sırasındaCANCELLED
State
ileWorkInfo
döndürecek. null
Result
öğeleriniListenableWorker
öğesinde başarısız olarak değerlendir. b/120362353- Bazen
IllegalArgumentException
hatası veren Shield 24 çalıştıran Shield Tabletler için spekülatif düzeltme. b/119484416
Çağlık API Değişiklikleri
- Firebase JobDispatcher desteği, yakında kullanımdan kaldırılacağı için kaldırılmıştır. Bu nedenle,
work-firebase
yapısının artık beta sürümüne geçilmeye başlanmayacağı anlamına gelir. Gelecekte bir alternatif eklemeyi planlıyoruz. Payload
,Result
olarak birleştirildi.Result
artık "mühürlü sınıf"Result.success()
(veyaResult.success(Data)
),Result.failure()
(ya daResult.failure(Data)
) veResult.retry()
yoluyla elde edebileceğiniz üç somut uygulamayla birlikte.ListenableFuture
'leriniz artıkPayload
yerineResult
ile sonuçlanıyor.Worker
öğeleri,Data
çıkışı için alıcı ve belirleyici yöntemlerine sahip değil.Operation.await()
veListenableFuture.await()
Kotlin uzantı yöntemleri eklendi.Operation.getException()
adlı dosyaOperation.getThrowable()
olarak yeniden adlandırıldı.ContentUriTriggers
sınıfı ve buna referans veren yöntemler artık herkese açık olarak kullanılamaz.- API'yi kolaylaştırmak için
WorkManager
,WorkContinuation
veOneTimeWorkRequest
kapsamındaki diğer varargs yöntemleri kaldırıldı. Derleme sorunlarını düzeltmek için mevcut değişkenleriniziArrays.asList(...)
ile sarmalayabilirsiniz. Yine de her yöntemin tek bağımsız değişkenli sürümlerini dahil ederiz. WorkContinuation.combine(OneTimeWorkRequest, *)
varyant kaldırıldı. Kafa karıştırıcı bir API sunuyorlardı; mevcutcombine
yöntemleri daha anlaşılırdır.
Sürüm 1.0.0-alpha11
8 Kasım 2018
Bu sürüm, beta
itibarıyla kararlı API'ye dönüşecek birçok değişiklik içeriyor.
Bu sürümde zarar veren API değişiklikleri var; lütfen aşağıdaki bozan API değişiklikleri 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öntem varyantları karşılık gelengetWorkInfo
varyantı. Bu, zarar veren bir değişikliktir.ListenableWorker.onStopped()
,WorkRequest
işlevinin iptal edilip edilmediğini temsil eden bir boole bağımsız değişkenini artık 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 setler, artık herkese açık API'nin bir parçası değil. Bu, zarar veren bir değişikliktir.WorkerParameters.getTriggeredContentUris()
veWorkerParameters.getTriggeredContentAuthorities()
daha önce dizi döndürdü. Artık bu yöntemler 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
oluşturucusu artık herkese açık API'nin bir parçası değil. Bu, zarar veren bir değişikliktir.Configuration.getMaxJobSchedulerID()
veConfiguration.getMinJobSchedulerID()
,Configuration.getMinJobSchedulerId()
olarak yeniden adlandırıldı veConfiguration.getMaxJobSchedulerId()
. Bu, zarar veren bir değişikliktir.- API'nin ergonomisini iyileştirmek için herkese açık API'ye çok sayıda
@NonNull
ek açıklaması eklendi. WorkContinuation
oluşturmak zorunda kalmadan benzersizOneTimeWorkRequest
'leri sıraya almak içinWorkManager.enqueueUniqueWork()
API'si ekleyin.WorkManager
üzerindeki tümenqueue
vecancel
yöntemlerinin varyantları artık yeni birOperation
türü döndürüyor. Bu, zarar veren bir değişikliktir.enqueue
öğesinin hiçbir varyantı,WorkRequest
için artık değişken kabul etmiyor. Bu, zarar veren bir değişikliktir. Bunun yerine Koleksiyonları kullanın. Mevcut kodu değiştirmek içinArrays.asList()
uzantısını kullanabilirsiniz. Bu uygulamayla, API yüzeyini ve yöntem sayısını azalttık.- İşlem başına birden çok kez
WorkManager
initialize
girişiminde bulunmak artıkIllegalStateException
ile sonuçlanır. Bu, zarar veren bir değişikliktir.
Hata Düzeltmeleri
work-runtime-ktx
yapısındakiWorkRequest.Builder
öğeleri artıkListenableWorker
kullanıyor. Düzeltmeler b/117666259PeriodicWork
için bir sonraki çalışma zamanının gelecekte olduğundan emin olun. Düzeltmeler b/118204399- Uygulama başlatılırken WorkManager'ı kullanırken olası disk G/Ç'sini kaldırın. Düzeltmeler b/117796731
WorkConstraintsTracker
oyununda bir yarış durumunu düzeltin. android-workmanager/issues/56 düzeltme
Çağlık API Değişiklikleri
WorkStatus
,WorkInfo
olarak yeniden adlandırıldı. İlgili tümgetStatus
yöntem varyantları ilgiligetWorkInfo
varyantı.ListenableWorker.onStopped()
,WorkRequest
işlevinin iptal edilip edilmediğini temsil eden bir boole bağımsız değişkenini artık 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 setler, artık herkese açık API'nin bir parçası değil.WorkerParameters.getTriggeredContentUris()
veWorkerParameters.getTriggeredContentAuthorities()
daha önce dizi döndürdü. Artık bu yöntemler Koleksiyonları döndürüyor.ListenableWorker.onStartWork()
,ListenableWorker.startWork()
olarak yeniden adlandırıldı.WorkStatus
oluşturucusu artık herkese açık API'nin bir parçası değil.Configuration.getMaxJobSchedulerID()
veConfiguration.getMinJobSchedulerID()
,Configuration.getMinJobSchedulerId()
olarak yeniden adlandırıldı veConfiguration.getMaxJobSchedulerId()
.WorkManager
üzerindeki tümenqueue
vecancel
yöntemlerinin varyantları artık yeni birOperation
türü döndürüyor.enqueue
öğesinin hiçbir varyantı,WorkRequest
için artık değişken kabul etmiyor.- İşlem başına birden çok kez
WorkManager
initialize
girişiminde bulunmak artıkIllegalStateException
ile sonuçlanır.
Sürüm 1.0.0-alpha10
11 Ekim 2018
Bu sürüm, geliştirici tarafından kontrol edilen eşzamansız çalışmayı destekler. Bu sürümde zarar veren API değişiklikleri var; lütfen aşağıdaki bozan API değişiklikleri bölümüne bakın.
WorkManager'ın alfa döneminin son aşamalarına geçtiğini tahmin ediyoruz. Beta sürümde API'lerin kararlı çalışmasını bekliyoruz. Bu nedenle, sorun izleyicimiz hakkında geri bildirimde bulunmak için lütfen biraz zaman ayırın.
API Değişiklikleri
- Daha önce
deprecated
yöntemlerinin ve sınıflarının tümü, özellikle de varsayılanWorker
oluşturucusu kaldırıldı. Bu, API'de zarar veren bir değişikliktir. NonBlockingWorker
, artık gösterilmemiş, herkese açık ve kullanıma hazır bir sınıf olanListenableWorker
olarak yeniden adlandırıldı.ListenableWorker
, ana iş parçacığında çağrılanListenableFuture<Payload> onStartWork()
adlı tek soyut yönteme erişim sağlar. İşleri eşzamansız olarak başlatmak ve işlemek size bağlıdır. İşlemi tamamladığınızdaListenableFuture
uygun şekilde güncellemeniz gerekir.ListenableFuture
referans uygulamaları,alpha02
uygulamasındakiFutures
paketinde sağlanmıştır (WorkManager
bölümünün altına bakın).Worker
,ListenableWorker
öğesini genişletir ve soyut birResult doWork()
yöntemiyle önceki gibi çalışmaya devam eder.Worker
öğesinden bazı yöntemler ve üyelerListenableWorker
olarak karıştırıldı.- Yakında, Kotlin eş yordamları (kararlı sürümler yayınlandıktan sonra) ve RxJava2 kullanan
ListenableWorker
'ler için referans uygulamaları sağlayacağız.
WorkerFactory
arayüzü veDefaultWorkerFactory
somut uygulaması,WorkerFactory
adlı soyut bir sınıfta birleştirildi. Uygulama, varsayılan yansıtmaya dayalı davranışın, kullanıcı tarafından oluşturulanWorkerFactory
örnekleri için son adım olarak değerlendirilmesini sağlar. Bu, zarar veren bir değişikliktir.WorkManager.synchronous()
,WorkContinuation.synchronous()
ve ilgili tüm yöntemler kaldırıldı. API'deki birçok yöntemin dönüş türü olarakListenableFuture<Void>
eklendi. Bu, API'de zarar veren bir değişikliktir.- Artık
ListenableFuture
öğelerini kullanarak eşzamanlı olarak alabilir ve gözlemleyebilirsiniz. Örneğin,WorkManager.enqueue()
,void
değerini döndürmek için kullanılır; şimdi birListenableFuture<Void>
döndürüyor. İşlem tamamlandığında kodu çalıştırmak içinListenableFuture.addListener(Runnable, Executor)
veyaListenableFuture.get()
yöntemini çağırabilirsiniz. - Bu
ListenableFuture
'ların işlemin başarılı mı yoksa başarısız mı olduğunu söylemediğini unutmayın; geri bildirim verir. Bu bilgileri bulmak için yine de WorkManager yöntemleri kullanmanız gerekir. - Bu nesneler kafa karıştırıcı ve akıl yürütmeleri zor olduğundan (işlemi mi yoksa sonuç olarak yapılacak işi mi iptal ediyorsunuz?) nedeniyle
cancel()
çağrıları yok sayılır. Bu,Future
sözleşmesi kapsamındadır. - Eşzamanlı
getStatus*
yöntemleriyle denkliği korumak içinListenableFuture
varyant sağladık veLiveData
döndüren mevcut varyantları açık bir şekilde "LiveData" içerecek şekilde yeniden adlandırdık olarak da adlandırılır (örneğin,getStatusesByIdLiveData(UUID)
). Bu, API'de zarar veren bir değişikliktir.
- Artık
Hata Düzeltmeleri
- Alfa09 sürümünde 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
gün olduğu bir yarış koşulunda potansiyelNullPointerException
düzeltildi. b/116253486 ve b/116677275 WorkContinuation.combine()
artık iki veya daha fazla yerine bir veya daha fazlaWorkContinuation
kabul ediyor. b/117266752
Çağlık API Değişiklikleri
- Daha önce
deprecated
yöntemlerinin ve sınıflarının tümü, özellikle de varsayılanWorker
oluşturucusu kaldırıldı. WorkerFactory
arayüzü veDefaultWorkerFactory
somut uygulaması,WorkerFactory
adlı soyut bir sınıfta birleştirildi.WorkManager.synchronous()
veWorkContinuation.synchronous()
kaldırıldı.WorkManager.getStatus*()
yöntemleri artıkListenableFuture
değeri döndürüyor.WorkManager.getStatus*LiveData()
,LiveData
değerini döndürür.
Sürüm 1.0.0-alpha09
19 Eylül 2018
Bilinen Sorun
Şu sorunla karşılaşırsanız: "İşletim sisteminden bağımsız 'META-INF/proguard/androidx-annotations.pro' yolunu kullanarak birden fazla dosya bulundu", alpha10 sürümünde bu sorunu geçici olarak düzeltirken lütfen aşağıdakini geçici bir çözüm olarak gradle dosyanıza yerleştirin:
Eski
android { packagingOptions { exclude 'META-INF/proguard/androidx-annotations.pro' } }
Kotlin
android { packagingOptions { exclude("META-INF/proguard/androidx-annotations.pro") } }
Hata Düzeltmeleri
- "100 iş" için gereken başka bir düzeltme eklendi hatası. b/115560696
- Yarış koşullarından kaynaklanan yabancı anahtar kısıtlaması hataları için bazı düzeltmeler eklendi. b/114705286
- Temel
Worker
öğesine yetki verilmişConstraintTrackingWorker.onStopped(boolean)
çağrıları. b/114125093 - Firebase JobDispatcher için doğru minimum geri yükleme gecikmesini zorunlu kılın. b/113304626
- Geliştirilmiş iş parçacığı oluşturma garantisi kitaplık içi garantiler sağlar.
- Dahili olarak
LiveData
tekilleştirilmesiyle ilgili olası sorunu düzeltin.
API Değişiklikleri
- Artık
WorkManager.Configuration
öğesinin 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
.Worker
veNonBlockingWorker
için varsayılan oluşturucuları artık desteklenmiyor olarak işaretlendi. Lütfen yeni oluşturucuyu (Worker(Context, WorkerParameters)
) kullanın vesuper(Context, WorkerParameters)
çağrısı yapın; WorkManager'ın gelecekteki sürümleri varsayılan oluşturucuyu kaldıracaktır.
- Yeni
ListenableFuture
yapısını şirket içinde kullanmaya başladık (Guava bağımlılığı olmadan). Gelecek sürümlerde, ListenableFutures’ı API’de tanıtacağız. Bu değişiklik,NonBlockingWorker
öğesinin nihai olarak gösterilmesini destekleyecek. TestDriver.setInitialDelayMet(UUID)
veTestDriver.setPeriodDelayMet(UUID)
aracılığıylaTestDriver
uygulamasına süreli işi tetikleme özelliği ekleyin. b/113360060
Çarpıcı Değişiklikler
- Varsayılan
Worker
veNonBlockingWorker
oluşturucuları kullanımdan kaldırıldı. Lütfen en kısa zamanda yeni oluşturucuya geçin. Gelecekteki sürümler varsayılan oluşturucuyu kaldıracaktır.
Sürüm 1.0.0-alpha08
27 Ağustos 2018
Hata Düzeltmeleri
- WorkManager bileşenleri, doğrudan başlatma sırasında tetiklenmemeleri için doğrudan başlatmanın farkında değil olarak etiketlendi. Gelecekte, doğrudan başlatmaya duyarlı bir WorkManager sürümü sunacağız. b/112665532
- Yeniden denenen çalışmanın çalışmamasına neden olan sorun düzeltildi. b/112604021
- Periyodik işlerin tekrar tekrar yürütülmemesi düzeltildi (yukarıdaki sorunla ilgili). b/112859683
- Uygulama işlemi çalışırken uygulanan geri yükleme politikaları.
Data
ürünündeki istisna mesajları, sınırın 10 KB olduğunu gösterecek şekilde düzeltildi.JobScheduler
işleminin tamamlanmasındaki bazı gecikmeleri hesaba katmak içinConfiguration.setMaxSchedulerLimit(int)
olan maksimum değer 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ürebilecek negatif sınırlara sahip olası bir SQL sorgusu düzeltildi.
- Yürütme işlemi tamamlanmışsa bu çalışmanın diğer Planlayıcılardaki beklemedeki tüm kopyaları artık doğru bir şekilde iptal edilir. Bu durum,
JobScheduler
iş sınırının aşılmasına neden oldu. b/111569265 ConstraintTracker
içindeki birConcurrentModificationException
düzeltildi. b/112272753Data.getBooleanArray(String)
veData.getIntArray(String)
dönüş türü ek açıklamaları@NonNull
yerine@Nullable
olarak değiştirildi. b/112275229
API Değişiklikleri
Worker
,NonBlockingWorker
adlı yeni sınıfın kapsamını genişletiyor. Bu durum mevcut kullanımı etkilemez.NonBlockingWorker
gelecekte özel ileti dizisi çözümleri için tam olarak desteklenen bir varlık olacaktır.Data.getBooleanArray(String)
veData.getIntArray(String)
dönüş türü ek açıklamaları@NonNull
yerine@Nullable
olarak değiştirildi. b/112275229- Kotlin uzantıları:
Map.toWorkData()
desteği sonlandı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
- İşleri planlarken veritabanı kilidinin oluşmasını önleyin. b/111801342
- Doz modundayken
PeriodicWork
uygulamasının planlanan şekilde çalışmamasına neden olan bir hata düzeltildi. b/111469837 WorkManager
kilitlenmesine neden olan kısıtlamaları takip ederken yarış durumunu düzeltin. googlecodelabs/android-workmanager/issues/56WorkRequest.Builder#build()
kullanırken benzersizWorkRequest
oluşturun. b/111408337RescheduleReceiver
kullanımını yalnızca gerekenWorkRequest
olduğunda etkinleştirin. b/111765853
Sürüm 1.0.0-alpha05
24 Temmuz 2018
API Değişiklikleri
WorkManager.getInstance()
için artık@Nullable
yerine@NonNull
ek açıklaması bulunuyor. Bunun yerine, manuel başlatma sırasında singleton düzgün bir şekilde başlatılmazsa yöntem birIllegalStateException
atar. Bu, ihlal ediyor olabilir.- WorkManager ayrıntısını kontrol edebilen yeni bir API (
Configuration.Builder.setMinimumLoggingLevel(int)
) eklendi. Varsayılan olarak, WorkManagerLog.INFO
ve sonraki sürümleri günlüğe kaydeder. Data.getString()
imzası, artık varsayılan değeri kullanmayacak şekilde değiştirildi (dolaylı olaraknull
). Bu, API'de zarar veren bir değişikliktir.- Bazı yöntemler yalnızca dahili kullanım için gerekli olan yöntemler
@hide
olarak işaretlendi. Bu,Constraints
oluşturucuyu,Data.toByteArray()
veData.fromByteArray(byte[])
'yi içerir. Bu, API'de zarar veren bir değişikliktir.
Hata Düzeltmeleri
- WorkManager, bilinen otomatik yedekleme durumları sırasında artık iş yürütmez. Bu durum kilitlenmeye neden olmuş olabilir. b/110564377
JobScheduler
kullanılırkenPeriodicWorkRequest
sn. için çift zaman planlaması düzeltildi. b/110798652- Cihaz dozundan sonra
PeriodicWorkRequest
öğelerinin doğru şekilde çalışmamasıyla ilgili sorun düzeltildi. b/111469837 - Firebase JobDispatcher kullanılırken yaşanan ilk gecikmelerle ilgili sorun düzeltildi. b/111141023
- Olası bazı yarış koşulları ve zamanlama sorunları giderildi.
- Artık ihtiyaç duyulmayan
BroadcastReceiver
öğeleri doğru şekilde yer açtı. - 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 sıraya alındıktan sonraTestScheduler.setAllConstraintsMet(UUID)
öğesinin çağrılmasına izin verildi. b/111238024
Çarpıcı Değişiklikler
WorkManager.getInstance()
için artık@Nullable
yerine@NonNull
ek açıklaması bulunuyor.Data.getString()
imzası, artık varsayılan değeri kullanmayacak şekilde değiştirildi (dolaylı olaraknull
).- Bazı yöntemler yalnızca dahili kullanım için gerekli olan yöntemler
@hide
olarak işaretlendi. Bu,Constraints
oluşturucuyu,Data.toByteArray()
veData.fromByteArray(byte[])
'yi içerir.
Sürüm 1.0.0-alpha04
26 Haziran 2018
Hata Düzeltmeleri
AlarmManager
tabanlı uygulama kullanılırkenPeriodicWorkRequest
'ler artık doğru şekilde yeniden planlandı.- Zorla durdurma veya yeniden başlatma sonrasında tüm çalışanlar yeniden planlanırken yaşanabilecek ANR sorunu düzeltildi. b/110507716
- Çeşitli WorkManager API'lerine null değer ek açıklamaları eklendi. b/110344065
- Çalışan yürütme sırasında ortaya çıkan yakalanmamış istisnaları günlüğe kaydedin. b/109900862
- WorkManager'ın eski bir sürümüne geri dönmeye karar vermeniz ihtimaline karşı yıkıcı veritabanı taşıma işlemlerine izin verilir. b/74633270
- Yinelenen örtülü etiketler oluşturulurken meydana gelen taşıma kilitlenmeleri düzeltildi. Bu, yalnızca aynı örtülü etiket biçimini kullandıysanız oluşan çok nadir bir sorundur.
Sürüm 1.0.0-alpha03
19 Haziran 2018
Hata Düzeltmeleri
AlarmManager
tabanlı uygulamadaki bir yarış durumu düzeltildi. b/80346526.Cihaz yeniden başlatıldıktan sonra
JobScheduler
kullanılırken yinelenen işler düzeltildi.İçerik URI tetikleyicisi olan işler artık yeniden başlatmalar boyunca devam ediyor. b/80234744
Doküman güncellemeleri. b/109827628, b/109758949, b/80230748
WorkRequest
yeniden sıraya alınırken yaşanan kilitlenme düzeltildi. b/109572353.work-runtime-ktx
bağımlılığı kullanılırken Kotlin derleyici uyarıları düzeltildi.WorkManager artık
Room
1.1.1-rc1
sürümünü kullanıyor.
API Değişiklikleri
WorkContinuation.getStatuses()
ürününün eşzamanlı sürümü olangetStatusesSync()
eklendi.Worker
, kullanıcı tarafından başlatılan iptal ile geçici olarak işletim sistemi tarafından istenen durdurmayı birbirinden ayırt edebilir. Herhangi bir durdurma istendiyseWorker.isStopped()
,true
değerini döndürür.Worker.isCancelled()
, çalışma açıkça iptal edildiğindetrue
değerini döndürür. b/79632247- API 28'de jobParameters#getNetwork() için destek ekleyin. Bu içerik,
Worker.getNetwork()
aracılığıyla kullanıma sunuldu. JobScheduler
veyaAlarmManager
ürününe gönderilebilecek iş sayısını zorunlu kılabilmeniz içinConfiguration.Builder.setMaxSchedulerLimit(int maxSchedulerLimit)
eklendi. Bu,WorkManager
adlı kullanıcının mevcutJobScheduler
slotlarınızın tamamını kullanmasını önlemeye yardımcı olur.WorkManager
tarafından kullanılabilmesi için güvenli olanJobScheduler
iş kimliği aralığının tanımlanmasına yardımcı olanConfiguration.setJobSchedulerJobIdRange(int minJobSchedulerId, int maxJobSchedulerId)
eklendi. b/79996760Worker.getRunAttemptCount()
, belirli birWorker
için mevcut çalıştırma sayısını döndürür. b/79716516WorkManager.enqueueUniquePeriodicWork(String uniqueWorkName, ExistingPeriodicWorkPolicy existingPeriodicWorkPolicy, PeriodicWorkRequest periodicWork)
, benzersizPeriodicWorkRequest
öğelerini sıraya eklemenize olanak tanır. b/79600647WorkManager.cancelAllWork()
tümWorker
öğelerini iptal eder.WorkManager
yöntemini kullanan kitaplıklar, dahili durumun ek temizlenmesi içinWorkManager.getLastCancelAllTimeMillis()
kullanarak bu yöntemin en son ne zaman çağrıldığını sorgulayabilir.- Tamamlanan işleri dahili veritabanından kaldırmak için
WorkManager.pruneWork()
eklendi. b/79950952, b/109710758
Davranış Değişiklikleri
- Tüm
WorkRequest
öğeleri için,Worker
için tam nitelikli sınıf adı olan örtülü bir etiket eklendi. Bu sayede,tag
olmadan veyaid
kullanılamadığındaWorkRequest
öğeleri kaldırılabilir. b/109572351
Çarpıcı Değişiklikler
Worker.WorkerResult
adlı dosyaWorker.Result
olarak yeniden adlandırıldı.Worker.onStopped
, artıkWorker
açıkça iptal edildiğindetrue
olarak ayarlanmış ek birisCancelled
parametresine sahip.
Sürüm 1.0.0-alpha02
24 Mayıs 2018
Hata Düzeltmeleri
State.isFinished()
için birNullPointerException
düzeltildi. b/79550068Worker
işlemlerininApplication.onCreate()
tarihinde yeniden planlanmasına neden olan sorun düzeltildi. b/79660657- İşletim sisteminin izin verdiğinden daha fazla iş planlamanıza neden olan sorun düzeltildi. b/79497378
Worker
ile ilişkili uyanık kalma kilitlerinin temizlenmesi arka plan iş parçacığına taşındı.AlarmManager
uygulaması, beklemedeki tüm işler tamamlandığında artık doğru şekilde temizleniyor.- İngilizce dışındaki yerel ayarları etkileyen SQL sorgularının temizlenmesi sorunu düzeltildi. b/80065360
Data
alan adındakifloat
desteği eklendi. b/79443878Data.Builder.putAll()
, artıkBuilder
öğesinin bir örneğini döndürüyor. b/79699162- Dokümanlarda daha fazla Javadoc ve düzeltmeler. b/79691663
API Değişiklikleri
Worker
öğeleri, durdurulmalarına tepki verebilir.Worker.isStopped()
, birWorker
cihazının durdurulup durdurulmadığını kontrol etmek için kullanılabilir.Worker.onStopped()
, basit temizleme işlemleri gerçekleştirmek için kullanılabilir.Worker.getTags()
API'si,Worker
ile ilişkili etiketlerinSet
değerini döndürür.- Süre ve
TimeUnit
sn. kombinasyonundan oluşan API'ler içinjavax.time.Duration
aşırı yüklemeleri eklendi. Bu,@RequiresApi(26)
tarafından korunuyor. WorkManager
uzantı,androidx.work.ktx
paketindenandroidx.work
paketine taşındı. Eski uzantılar artık kullanılmıyor ve gelecekteki bir sürümde kaldırılacaktır.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 planlama ve yürütme sürecini basitleştirir
garantili, kısıta duyarlı arka plan çalışmasıdır. Bu ilk sürüm 1.0.0-alpha01
.