WorkManager
Son Güncelleme | Kararlı Sürüm | Sürüm Adayı | Beta Sürümü | Alfa Sürümü |
---|---|---|---|---|
30 Ekim 2024 | 2.9.1 | - | - | - |
Bağımlılıkları bildirme
WorkManager'a bağımlılık eklemek için projenize Google Maven deposunu eklemeniz gerekir:
Uygulamanızın veya modülünüzün build.gradle
dosyasına ihtiyacınız olan yapıların bağımlılıklarını ekleyin:
Eski
dependencies { def work_version = "2.9.1" // (Java only) implementation "androidx.work:work-runtime:$work_version" // Kotlin + coroutines implementation "androidx.work:work-runtime-ktx:$work_version" // optional - RxJava2 support implementation "androidx.work:work-rxjava2:$work_version" // optional - GCMNetworkManager support implementation "androidx.work:work-gcm:$work_version" // optional - Test helpers androidTestImplementation "androidx.work:work-testing:$work_version" // optional - Multiprocess support implementation "androidx.work:work-multiprocess:$work_version" }
Kotlin
dependencies { val work_version = "2.9.1" // (Java only) implementation("androidx.work:work-runtime:$work_version") // Kotlin + coroutines implementation("androidx.work:work-runtime-ktx:$work_version") // optional - RxJava2 support implementation("androidx.work:work-rxjava2:$work_version") // optional - GCMNetworkManager support implementation("androidx.work:work-gcm:$work_version") // optional - Test helpers androidTestImplementation("androidx.work:work-testing:$work_version") // optional - Multiprocess support implementation("androidx.work:work-multiprocess:$work_version") }
Kotlin uzantılarını kullanma hakkında bilgi edinmek için ktx dokümanlarını inceleyin.
Bağımlılıklar hakkında daha fazla bilgi için Derleme Bağımlılıkları Ekleme başlıklı makaleyi inceleyin.
Geri bildirim
Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmek için fikirleriniz varsa lütfen bize bildirin. Yeni bir kitaplık oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oy verebilirsiniz.
Daha fazla bilgi için Sorun İzleyici dokümanlarına bakın.
Sürüm 2.10
2.10.0 sürümü
30 Ekim 2024
androidx.work:work-*:2.10.0
yayınlandı. 2.10.0 sürümü bu taahhütleri içerir.
2.9.1 sürümünden bu yana yapılan önemli değişiklikler
- İşler'e
WorkManager
kaynağından izleme etiketleri eklendi. Bu etiketler, yürütülmekte olan Çalışanın adını içereceği için "adb shell dumpsys businessscheduler" işinin çok daha kolay anlaşılmasını sağladı.WorkManager
'ün önemli alanlarının etrafına da izleme bölümleri eklenir. Configuration.workerCoroutineContext
,CoroutineWorker
'un yürütüldüğü dağıtıcının kontrolü için eklendi.- Geliştiriciler,
Constraints.setRequiredNetworkRequest
yöntemini kullanarak bir çalışan için kısıtlama olarakNetworkRequest
belirtebilir. Bu sayede, bu çalışanın hangi ağda çalışacağı konusunda daha ayrıntılı kontrol sahibi olabilirsiniz. WorkManager
2.10.0 artık SDK 35 ile derlenmiş ve SDK 35 uyumluluğu için çeşitli değişiklikler içeriyor.
Sürüm 2.10.0-rc01
24 Ekim 2024
androidx.work:work-*:2.10.0-rc01
yayınlanır. 2.10.0-rc01 sürümü bu taahhütleri içerir.
Sürüm 2.10.0-beta01
2 Ekim 2024
androidx.work:work-*:2.10.0-beta01
yayınlanır. 2.10.0-beta01 sürümü bu taahhütleri içerir.
Sürüm 2.10.0-alpha04
18 Eylül 2024
androidx.work:work-*:2.10.0-alpha04
yayınlandı. 2.10.0-alpha04 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Bir ön plan çalışanının, ön plan hizmet türüne göre yürütme zaman aşımı nedeniyle durdurulması için durdurma nedenini
STOP_REASON_FOREGROUND_SERVICE_TIMEOUT
ekleyin. (Ibd0af)
Sürüm 2.10.0-alpha03
4 Eylül 2024
androidx.work:work-*:2.10.0-alpha03
yayınlandı. Sürüm 2.10.0-alpha03 bu kaydetmeleri içerir.
Yeni Özellikler
WorkManager
'teki işler için izleme etiketleri eklendi. Bu, yürütülen işleyicinin adını içereceğinden "adb shell dumpsys jobscheduler" komutunun anlaşılmasını çok daha kolaylaştırır.WorkManager
'ün önemli alanlarının etrafına da izleme bölümleri eklenir.
API Değişiklikleri
- WorkManager 2.10.0 artık SDK 35 ile derleniyor.
- "Short service" ve "data sync" türündeki ön plan işleyicilerin zaman aşımına uğraması ve
WorkManager
,stopSelf()
'u çağırmadığı zaman ANR'ye neden olması sorunu düzeltildi. Bu düzeltme yalnızca ön plan hizmet türlerinin kullanıma sunulduğu API 34 ve 35 yüklü cihazlar için geçerlidir. (ca06b2, b/364508145) WorkerFactory
kullanılırkenWorker
'ın bağlandığı uzak işlemi değiştirmeyi sağlayan yeniWorkerParameters
API'leri. (Ibdc8a, Ie8a90, I7373f)
Hata Düzeltmeleri
- İşin ön plan türü Android 14 ön koşul izinleri iptal edildiğinde
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) - Yeni platform API'lerine erişim manuel olarak belirtilmemiştir. Bunun nedeni, AGP 7.3 veya sonraki sürümlerde R8 kullanıldığında (ör. R8 3.3 sürümü) ve AGP 8.1 veya sonraki sürümlerde tüm derlemelerde (ör. D8 8.1 sürümü) API modelleme aracılığıyla otomatik olarak gerçekleşmesidir. AGP kullanmayan müşterilerin D8 sürümüne 8.1 veya daha yeni bir sürüme geçmeleri önerilir. Daha fazla bilgi için bu makaleyi inceleyin. (Ia60e0, b/345472586)
Sürüm 2.10.0-alpha02
17 Nisan 2024
androidx.work:work-*:2.10.0-alpha02
yayınlanır. Sürüm 2.10.0-alpha02 bu kaydetmeleri içerir.
API Değişiklikleri
WorkManager
'de yapılandırılabilir bir@RestrictTo
Tracer
aracılığıyla izleme aralıkları yayınlama özelliği eklendi. (I17d7f, b/260214125)Configuration.workerCoroutineContext
,CoroutineWorker
'un yürütüldüğü dağıtıcının kontrolü için eklendi.WorkManager
içindeDispatchers.Default
kullanımından tamamen kaçınılmasına yardımcı olur. (Icd1b7)- İşçiler için özel istisna işleyicileri 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 boşluk bilgisi sağlıyor. Söz konusu koddaki boşluk varsayımlarının yanlış olması, istemcilerin kaynak kodunda değişiklik yapılmasını gerektirebilir. (If6757)
Sürüm 2.10.0-alpha01
24 Ocak 2024
androidx.work:work-*:2.10.0-alpha01
yayınlanır. 2.10.0-alpha01 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Geliştiriciler,
Constraints.setRequiredNetworkRequest
yöntemi aracılığıyla bir çalışan içinNetworkRequest
kısıtlaması belirtebilir. Bu sayede, bu çalışanın hangi ağda çalışacağı konusunda daha ayrıntılı kontrol sahibi olabilirsiniz.
API Değişiklikleri
- Kısıtlama olarak
NetworkRequest
belirtme özelliği eklendi. (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ınlanır. 2.9.1 sürümü 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ınlanır. 2.9.0 sürümü bu taahhütleri içerir.
2.8.0'dan bu yana önemli değişiklikler
Flow
'ler aracılığıyla gözlemlenebilirlik. İşçinin ilerleme durumu artıkLiveData
yerineWorkManager.getWorkInfosFlow
ve benzer yöntemler aracılığıyla Flow üzerinden gözlemlenebilir.- Artık
WorkManager
, bir çalışanın daha önce neden durdurulduğuna dair bir ipucu sağlıyor.getStopReason()
yöntemi aracılığıyla çalışandan veyagetStopReason()
yöntemi aracılığıylaWorkInfo
'ten sorgulanabilir. setNextScheduleTimeOverride
aracılığıyla dönemsel çalışanların hassas planlaması. Bu, bir sonraki dönemsel çalışma programının dinamik olarak hesaplanmasına olanak tanır. Bu program, uyarlanabilir yenileme süreleri, özel yeniden deneme davranışı veya bir haber feed'i işleyicisinin her sabah kullanıcı uyanmadan önce çalıştırılmasını sağlamak gibi gelişmiş özellikleri uygulamak için kullanılabilir. Bir sonraki işleyiciyi planlarken şu anda çalışan bir işleyicinin iptal edilmemesi içinExistingPeriodicWorkPolicy.UPDATE
bu tekniklerle birlikte 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şındı. Work-runtime-ktx artık boş.
API Değişiklikleri
stopReason
,WorkInfo
grubuna eklendi. İşleyici çalıştırıldıktan sonrastopReason
değerini kullanılabilir hale getirir. Bir işleyici durdurulduktan sonra uygulamanın kendisi çok hızlı bir şekilde sonlandırılabileceğinden,stopReason
'ü kullanılabilir bir şekilde raporlamada faydalı olabilir. (I21386)Clock
değerinin yapılandırma üzerinden ayarlanmasına ve işleyici testlerinin yürütme sıralamasını yönlendirmek için kullanılmasına izin verin. (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
sınıfının kurucusu artık herkese açıktır. Bu, test aşamasında yararlı olabilir. (Ia00b6, b/209145335)work-runtime-ktx
artık boş,CoroutineWorker
ve Kotlin'e özgü diğer yardımcı programlar artık ana çalışma zamanındaki yapıda kullanılabilir. (I71a9a)- Düzenli çalışma programlarının doğru şekilde ayarlanmasını sağlayan
setNextScheduleTimeOverride
yöntemi eklendi (I3b4da) 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
oluşturucularına ve özelliklerine eksik@RequiresApi(...)
ek açıklamaları eklendi. Bu ek açıklamalar artıkWorkManager
'un önceki sürümlerinden beriConstraints.Builder
'teki ayarlayıcılarda bulunan ilgili ek açıklamalarla uyumlu hale getirildi. (I6d7d2)WorkManager
artık içerik URI'si çalışanları için ayrı bir sınıra sahiptir. Bu sınır, yüksek yük altında içerik güncellemelerinin eksik olmasını önlemek amacıylaJobScheduler
'te çalışanlara garantili yuvalar sağlar. Sınır,Configuration.Builder.setContentUriTriggerWorkersLimit
üzerinden yapılandırılabilir. (Ic128f)WorkInfo
alanına kısıtlamalar eklenir. (I162c0)
Sürüm 2.9.0-rc01
18 Ekim 2023
androidx.work:work-*:2.9.0-rc01
yayınlanır. 2.9.0-rc01 sürümü bu taahhütleri içerir.
- Son beta sürümden 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ınlanır. 2.9.0-beta01 sürümü bu taahhütleri içerir.
API Değişiklikleri
WorkInfo.stopReason
veListenableWorker.stopReason
tarafından döndürülen duraklatma nedenleri için sabit değerler eklendi (I0cc00)
Sürüm 2.9.0-alpha02
26 Temmuz 2023
androidx.work:work-*:2.9.0-alpha02
yayınlanır. 2.9.0-alpha02 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Artık
WorkManager
, bir çalışanın daha önce neden durdurulduğuna dair bir ipucu sağlıyor.getStopReason()
yöntemi aracılığıyla çalışandan veyagetStopReason()
yöntemi aracılığıylaWorkInfo
'ten 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 işleyici durdurulduktan sonra uygulamanın kendisi çok hızlı bir şekilde kapatılabileceğinden,stopReason
'ü kullanılabilir bir şekilde raporlamak yararlı 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 sızdırılan kaynaklarla ilgili uyarısını önlemek için
WorkManagerTestInitHelper#closeWorkDatabase()
eklendi. (Ia8d49)
Hata Düzeltmeleri
TestDriver
kullanarakoverrideNextScheduleTime
'ü atlama özelliği eklendi ve test edilebilirlikle ilgili sorunlar düzeltildi. (Ic2905)
Sürüm 2.9.0-alpha01
7 Haziran 2023
androidx.work:work-*:2.9.0-alpha01
yayınlandı. 2.9.0-alpha01 sürümü bu taahhütleri içerir.
Yeni Özellikler
Flow
'ler aracılığıyla gözlemlenebilirlik. İşçinin ilerleme durumu artıkLiveData
yerineWorkManager.getWorkInfosFlow
ve benzer yöntemler aracılığıyla Flow üzerinden gözlemlenebilir.setNextScheduleTimeOverride
aracılığıyla dönemsel çalışanların hassas planlaması. Bu, bir sonraki dönemsel çalışma programının dinamik olarak hesaplanmasına olanak tanır. Bu program, uyarlanabilir yenileme süreleri, özel yeniden deneme davranışı veya bir haber feed'i işleyicisinin her sabah kullanıcı uyanmadan önce çalıştırılmasını sağlamak gibi gelişmiş özellikleri uygulamak 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
, üretimle eşleşen mesaj dizileriyle test yapıyor.ExecutorsMode.PRESERVE_EXECUTORS
,Configuration
içinde ayarlanan yürütücüleri korumak ve gerçek ana iş parçacığı kullanmak için kullanılabilir.CoroutineWorker
gibi coroutine API'leri, ek yapıwork-runtime-ktx
'ten ana yapıwork-runtime
'ye taşındı.work-runtime-ktx
artık boş.
API Değişiklikleri
WorkInfo
sınıfının kurucusu artık herkese açık. Bu, test için 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)- Düzenli çalışma programlarının doğru şekilde ayarlanmasını sağlayan
setNextScheduleTimeOverride
yöntemi eklendi (I3b4da) getEarliestRunTimeMillis
,getNextScheduleTimeMillis
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
yöntemleri aracılığıyla akışlar üzerinden çalışanları gözlemleme yöntemi eklendi (If122a)- Kısıtlamalar'ın kurucularına ve özelliklerine eksik
@RequiresApi(...)
ek açıklamaları eklendi. Bu ek açıklamalar artıkWorkManager
'un önceki sürümlerinden beriConstraints.Builder
'teki ayarlayıcılarda bulunan ilgili 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
üzerinden yapılandırılabilir. (Ic128f) WorkInfo
alanına kısıtlamalar eklenir. (I162c0)
Sürüm 2.8
Sürüm 2.8.1
22 Mart 2023
androidx.work:work-*:2.8.1
yayınlanır. 2.8.1 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Daha önce iki eşzamanlı yayını doğru şekilde işlemeyen
RescheduleReceiver
'teki ANR düzeltildi. (b/236906724)
Sürüm 2.8.0
8 Şubat 2023
androidx.work:work-*:2.8.0
yayınlanır. 2.8.0 sürümü bu taahhütleri içerir.
2.7.0'dan bu yana önemli değişiklikler
Yeni Özellikler
- Orijinal sıraya ekleme süresini, zincirleme vb. koruyarak
WorkRequests
öğesini müdahaleci olmayan bir şekilde güncelleme özelliği eklendi. Daha fazla bilgi için bu özellikle ilgili ayrıntılı blog yayınını veWorkManager.updateWork
ileExistingPeriodicWorkPolicy.UPDATE
için javadoc'ları inceleyin.
API Değişiklikleri
WorkManager.updateWork
, orijinal iş sırasına ekleme zamanını ve zincirleme işlemini koruyarak çalışmayı güncellemek için eklendi.(I9a248, b/219446409)ExistingPeriodicWorkPolicy.UPDATE
eklendi. Bu politika, dönemlik bir çalışmanın adına göre güncellenmesine olanak tanır. MevcutREPLACE
işlevine benzer ancak daha az müdahalecidir: Çalışan şu anda çalışıyorsa iptal etmez ve iş sırasına ekleme süresini korur. İlk gecikme ve dönem, güncelleme zamanından değil, orijinal iş sırasına ekleme zamanından 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
vePeriodicWorkRequest
için satır içi yardımcılarandroidx.work:work-runtime-ktx
'denandroidx.work:work-runtime
'a taşındı (I0010f, b/209145335)WorkQuery
öğesini doğrudan oluşturmak içinWorkQuery.fromIds
,WorkQuery.fromStates
,WorkQuery.fromUniqueWorkNames
,WorkQuery.fromTags
yardımcı yöntemleri eklendi. (b/199919736) (If48f2, b/199919736)Worker
listesinegetForegroundInfo
eklendi. (Ic1ead)- Hem RxJava 2 hem de RxJava 3 için
RxWorker
artıkListenableFuture
döndürensetForegroundInfoAsync
yerine kullanılabilecekCompletable
döndürensetForeground
işlevine sahiptir. - Hem RxJava 2 hem de RxJava 3 için
RxWorker
,ListenableFuture
döndürengetForegroundInfoAsync
yerine kullanılabilenSingle
döndürengetForegroundInfo
işlevine sahiptir. (b/203851459) - Kotlin kullanıcıları için uygun olan
Constraints.Builder
yerine artık kısıtlamalar doğrudan oluşturulabilir. (Idc390, b/137568653) WorkManager
değerinin başlatılıp başlatılmadığını kontrol etme özelliği eklendi. Ayrıca, kitaplık geliştiricilerinWorkManager
'ın başlatıldığı yapılandırmayı almaları için yeni birgetConfiguration()
API 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
izninin verilmesini gerektiren API'lere@RequiresPermission
eklendi. (Ie542e, b/238790278) suspendCancellableCoroutine
kullanılırkenCoroutineScope
'teki iptalleriListenableFuture
'e iletme.
Sürüm 2.8.0-rc01
7 Aralık 2022
androidx.work:work-*:2.8.0-rc01
yayınlanır. 2.8.0-rc01 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Bu sürümde yeni özellik bulunmuyor. 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ınlanır. 2.8.0-beta02 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Daha önce yeni nesil bilgileri dikkate almayan
WorkInfo
yöntemiWorkInfo
'te düzeltildi.equals
(4977cc)
Sürüm 2.8.0-beta01
5 Ekim 2022
androidx.work:work-*:2.8.0-beta01
yayınlanır. 2.8.0-beta01 sürümü bu taahhütleri 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ınlanır. 2.8.0-alpha04 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Çalışanın neslini döndüren
WorkerInfo.getGeneration()
veWorkerParameters.getGeneration()
işlevleri eklendi.ExistingPeriodicWorkPolicy.UPDATE
kullanılarakWorkManager.updateWork
veyaWorkManager.enqueueUniquePeriodicWork
aracılığıyla güncellenen bir çalışanın birden fazla nesli vardır. İşçi şu anda çalışıyorsa bu yöntemin, işçinin yürütülmesi sırasında bir güncelleme yapılmışsa şu anda çalışan işçiden daha yeni bir nesil döndürebileceğini unutmayın. (I665c5, b/219446409) (I128a9, b/219446409) WorkManager
uygulamasını başlatmaya çalışı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ınlanır. 2.8.0-alpha03 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Orijinal sıraya ekleme süresini, zincirleme vb. koruyarak
WorkRequests
öğesini müdahaleci olmayan bir şekilde güncelleme özelliği eklendi. Daha fazla bilgi içinWorkManager.updateWork
veExistingPeriodicWorkPolicy.UPDATE
başlıklı makaleleri inceleyin.
API Değişiklikleri
WorkManager.updateWork
, orijinal iş sırasına ekleme zamanını ve zincirleme işlemini koruyarak çalışmayı güncellemek için eklendi.(I9a248, b/219446409)ExistingPeriodicWorkPolicy.UPDATE
eklendi. Bu politika, dönemlik bir çalışmayı ada göre güncellemenize olanak tanır. MevcutREPLACE
işlevine benzer ancak daha az müdahalecidir: Çalışan şu anda çalışıyorsa iptal etmez ve iş sırasına ekleme süresini korur. İlk gecikme ve dönem, güncelleme zamanından değil, orijinal iş sırasına ekleme zamanından hesaplanır.REPLACE
veUPDATE
adları çok benzer olduğundan, bu iki ad arasında karışıklık olmaması içinREPLACE
desteği sonlandırıldı.REPLACE
için önceki semantikleri korumak istiyorsanızREPLACE
ile aynı olan yeni eklenenCANCEL_AND_REENQUEUE
kullanılabilir. (I985ed, b/219446409)SchedulingExceptionHandler
tanımlayarak planlama istisnalarını durdurma özelliğini ekleyin. (I033eb)OneTimeWorkRequest
vePeriodicWorkRequest
için satır içi yardımcılarandroidx.work:work-runtime-ktx
konumundanandroidx.work:work-runtime
konumuna taşındı (I0010f, b/209145335)
Hata Düzeltmeleri
- SDK 33 ve sonraki sürümlerde POST_NOTIFICATIONS izninin verilmesini gerektiren API'lere
@RequiresPermission
eklendi. (Ie542e, b/238790278)
Sürüm 2.8.0-alpha02
6 Nisan 2022
androidx.work:work-*:2.8.0-alpha02
yayınlanır. 2.8.0-alpha02 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Sınırlamalar artık Builder yerine doğrudan oluşturulabilir. Bu, Kotlin kullanıcıları için kullanışlıdır. (Idc390, b/137568653)
WorkManager
değerinin başlatılıp başlatılmadığını kontrol etme özelliği eklendi. Ayrıca, kitaplık geliştiricilerinWorkManager
'ın başlatıldığı yapılandırmayı almaları için yeni birgetConfiguration()
API eklendi. (I6eff3, b/212300336)
Sürüm 2.8.0-alpha01
12 Ocak 2022
androidx.work:work-*:2.8.0-alpha01
yayınlanır. 2.8.0-alpha01 sürümü bu taahhütleri içerir.
API Değişiklikleri
- WorkQuery'yi doğrudan oluşturmak için
WorkQuery.fromStates
,WorkQuery.fromUniqueWorkNames
,WorkQuery.fromTags
yardımcı yöntemleri eklendi. (If48f2, b/199919736) - Gelecekteki SDK'lar için deneysel BuildCompat yöntemleri ekler (Iafd82, b/207528937)
getForegroundInfo
öğesiniWorker
'a ekleyin. (Ic1ead)- Doğrudan kimliklerden WorkQuery oluşturmak için
WorkQuery.fromIds
yardımcı yöntemler eklendi. (Ie5bdf, b/199919736) - RxWorker artık
ListenableFuture
döndürensetForegroundInfoAsync
yerine kullanılabilensetForeground
Completable
döndürüyor. (I85156) - RxJava 2 için RxWorker artık
ListenableFuture
döndürengetForegroundInfoAsync
yerine kullanılabilecekgetForegroundInfo
döndürenSingle
değerine sahiptir. (I21c91, b/203851459) - RxJava 3 için RxWorker'da, artık
ListenableFuture
döndürengetForegroundInfoAsync
yerine kullanılabilecekgetForegroundInfo
Single
değeri döndürülüyor. (I1ca8a) - RxWorker artık
ListenableFuture
döndürensetForegroundInfoAsync
yerine kullanılabilecekCompletable
döndürensetForeground
işlevine sahiptir. (I992a3, b/203851459)
Hata Düzeltmeleri
suspendCancellableCoroutine
kullanılırkenCoroutineScope
'teki iptalleriListenableFuture
'e iletme. (I77e63)
Sürüm 2.7
Sürüm 2.7.1
17 Kasım 2021
androidx.work:work-*:2.7.1
yayınlanır. 2.7.1 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
suspendCancellableCoroutine
kullanılırkenCoroutineScope
'teki iptal işlemleriListenableFuture
'e iletilir. (I77e63)- Geciken çalışma istekleri acil olarak işaretlendiğinde hemen bir istisna atılır. bef1762
2.7.0 sürümü
13 Ekim 2021
androidx.work:work-*:2.7.0
yayınlanır. 2.7.0 sürümü bu taahhütleri içerir.
2.6.0 sürümünden beri yapılan önemli değişiklikler
WorkManager, Android 12'deki ön plan hizmet kısıtlamalarına yardımcı olmak için yeni bir
WorkRequest.Builder.setExpedited(...)
API'yi kullanıma sundu.setExpedited(...)
kullanıldığında WorkManager, Android 12'den itibaren JobScheduler'daki hızlandırılmış işlere yetki verirken bir ön plan hizmetine 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ınlanır. 2.7.0-rc01 sürümü bu kaydetmeleri içerir.
Bu sürüm androidx.work:work-*:2.7.0-beta01
ile aynıdır.
Sürüm 2.7.0-beta01
1 Eylül 2021
androidx.work:work-*:2.7.0-beta01
yayınlandı. 2.7.0-beta01 sürümü bu taahhütleri içerir.
Yeni Özellikler
- WorkManager'ı başlatırken çok işlemli SQLite anlaşmazlığı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()
'ü uygulamayan hızlandırılmış çalışanlar için daha iyi bir hata mesajı sağlandı. (aosp/1809376)
Sürüm 2.7.0-alpha05
21 Temmuz 2021
androidx.work:work-*:2.7.0-alpha05
yayınlanır. 2.7.0-alpha05 sürümü bu taahhütleri içerir.
Bu sürüm, WorkManager 2.6.0-beta02
sürümünün hata düzeltmelerini 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ılmadı.- Mümkün olduğunda
WorkRequest.Builder.setExpedited(...)
API'yi kullanmanızı öneririz. Geliştiriciler, uygulamanın ön plan hizmet kısıtlamalarına tabi olmadığı durumları daha iyi desteklemek içinListenableWorker.setForegroundAsync()
API'yi kullanabilir. - Uygulama ön plan hizmeti kısıtlamalarına tabiyken
ListenableWorker.setForegroundAsync()
çağrılırsa ForegroundServiceStartNotAllowedException hatası atılır.
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 taahhütleri 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
: Uzaktan bir sürece bağlanabilenRemoteListenableWorker
uygulaması olanRemoteCoroutineWorker
eklendi. (I30578)
API Değişiklikleri
- WorkManager
2.6.0-alpha02
'da: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
'ların bunları bağımlılık olarak kullanabilmesi içinWorkManagerInitializer
'ı herkese açık hale getirin. (I5ab11)
Sürüm 2.7.0-alpha02
10 Mart 2021
androidx.work:work-*:2.7.0-alpha02
yayınlandı. 2.7.0-alpha02 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Android 12'yi hedeflerken kilitlenme sorununu düzeltmek için
PendingIntent
değişkenliğini açıkça belirtin. (b/180884673)
Sürüm 2.7.0-alpha01
18 Şubat 2021
androidx.work:work-*:2.7.0-alpha01
yayınlanır. 2.7.0-alpha01 sürümü bu taahhütleri içerir.
Yeni Özellikler
WorkManager, Android 12'deki ön plan hizmeti kısıtlamalarını dikkate alan yeni bir
WorkRequest.Builder.setExpedited(...)
API kullanıma sundu.Uygulamalar artık arka plandayken ön plan hizmeti başlatamaz. Bu nedenle, daha önce bir ön plan hizmetinin yaşam döngüsüne bağlı olan uzun süreli çalışmaları daha iyi desteklemek için uygulamalar
WorkRequest
'leri hızlandırılmış olarak işaretleyebilir.Bu API, artık desteği sonlandırılmış
setForegroundAsync(...)
/setForeground(...)
API'lerinin yerini almıştır.WorkManager,
setExpedited(...)
kullanılırken Android 12'den itibarenJobScheduler
'teki hızlandırılmış işlere yetki verir. Ayrıca, ö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
'ler için destek ekleyin.
Sürüm 2.6.0
Sürüm 2.6.0
1 Eylül 2021
androidx.work:work-*:2.6.0
yayınlanır. 2.6.0 sürümü bu taahhütleri içerir.
2.5.0 sürümünden beri yapılan önemli değişiklikler
WorkManager artık WorkManager'ı başlatmak için
androidx.startup
kullanır. 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" />
Herhangi bir işlemde çalışabilen işçiler için 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ınlanır. 2.6.0-rc01 sürümü bu taahhütleri 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ınlanır. Sürüm 2.6.0-beta02 bu kaydetmeleri içerir.
Hata Düzeltmeleri
RemoteWorkManager
artıkRemoteWorkManagerService
ile bağlantısını doğru şekilde kesiyor. Bu sayedeRemoteWorkManagerService
doğru şekilde temizlenebiliyor. aosp/1730694RemoteListenableWorker
artıkRemoteWorkerService
ile bağlantısını doğru şekilde kaldırıyor. Bu sayedeRemoteWorkerService
doğru şekilde temizlenebiliyor. 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ümde dokümanlar üzerinde bazı küçük iyileştirmeler yapılmıştır. 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ınlanır. 2.6.0-alpha02 sürümü bu taahhütleri içerir.
Yeni Özellikler
Herhangi bir işlemde çalışabilen çalışanlar için 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ınlanır. 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)Geçmişte işlem yaşam döngüsünü başlatmak için kullanılan
ContentProvider
yerinetools:node="remove"
kullandıysanız bunun yerine aşağıdakileri yapmanız gerekir.<provider android:name="androidx.startup.InitializationProvider" android:authorities=\"${applicationId}.androidx-startup" android:exported="false" tools:node=\"merge"> <!-- If you are using androidx.startup to initialize other components --> <meta-data android:name="androidx.work.impl.WorkManagerInitializer" android:value="androidx.startup" tools:node="remove" /> </provider>
(veya)
<!-- If you want to disable android.startup completely. --> <provider android:name="androidx.startup.InitializationProvider" android:authorities="${applicationId}.androidx-startup" tools:node="remove"> </provider>
API Değişiklikleri
- ListenableWorker'ın
outputData
değerini döndüren birResult.getOutputData()
API ekleyin. (Ie51e3)
Hata Düzeltmeleri
AlarmManager
API'leri kullanılırkenSecurityException
hatasının oluşmasına neden olan bir OEM hatası için geçici çözüm ekleyin. (aosp/1587518)
2.5.0 sürümü
2.5.0 sürümü
27 Ocak 2021
androidx.work:work-*:2.5.0
yayınlanır. 2.5.0 sürümü bu taahhütleri içerir.
2.4.0 sürümünden beri yapılan önemli değişiklikler
- Birden fazla işlem kullanan uygulamalar için yeni bir
:work:work-multiprocess
yapısı. Bu sayede, iş isteği planlaması tek bir işlemde birleştirilerek performans kazanımları elde edilir.work-multiprocess
'ü kullanmak için aşağıdakilerde bağımlılık tanımlayın:implementation "androidx.work:work-multiprocess:2.5.0"
- Configuration.Builder.setDefaultProcessName(String) kullanarak birincil bir işlem atayın.
work-multiprocess
hizmetini kullanırken,WorkRequest
öğelerinizi yönetmek için RemoteWorkManager'ı da kullanmak istersiniz. RemoteWorkManager her zaman belirtilen işleme ulaşır. İşlem içi zamanlayıcı da belirtilen işlemde çalışır.
- Bazen
ActivityManager
, bir iş başlatmak içinJobService
örneğini oluşturamaz. Bu durum, platformdaki bir hata nedeniyle temel işin sessizce bırakılmasına neden olur.WorkManager
artık birApplication
başlatılırken işleri uzlaştırma yoluyla herWorkRequest
için yedek işlerin bulunduğundan emin oluyor. Bu, iş yürütme güvenilirliğini büyük ölçüde artırır. (b/172475041, aosp/1489577) WorkManager
, birWorkRequest
tamamlandıktan sonraWorkRequest
'ların izlendiği arabellek süresini kısaltarak 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
, testleri kolaylaştırmak için artıkListenableWorker
'u genişleten somut sınıfı destekliyor. (aosp/1443299, b/169787349)- WorkManager İnceleyici, Android Studio Arctic Fox kullanılırken artık kullanılabilir.
Sürüm 2.5.0-rc01
13 Ocak 2021
androidx.work:work-*:2.5.0-rc01
yayınlanır. 2.5.0-rc01 sürümü bu taahhütleri 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 neden olur. (aosp/1535368, b/175944460)
- Etkin olmayan bir işlemden bağ 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ınlanır. Sürüm 2.5.0-beta02 bu kaydetmeleri içerir.
Hata Düzeltmeleri
androidx.work:work-multiprocess
'te, WorkManager'ın belirtilen işleme bağlanmaya çalışırken çağıran iş parçacığının yanlışlıkla engellendiği bir hata düzeltildi. (aosp/1475538)PeriodicWorkRequest
'ların doğru şekilde uyumlulaştırılamamasına neden olan hata düzeltildi. (b/172475041, aosp/1489577)setForeground*
API'leri kullanılırken ön plan hizmeti durdurulduğunda ortaya çıkan bir platform hatası için geçici çözüm eklendi. (b/170924044, aosp/1489901)
Sürüm 2.5.0-beta01
28 Ekim 2020
androidx.work:work-*:2.5.0-beta01
yayınlanır. Sürüm 2.5.0-beta01 bu kaydetmeleri içerir.
Yeni Özellikler
WorkManager
, işlem içi planlayıcı tarafından alınabilecekWorkRequest
sayısını otomatik olarak sınırlandırır. İstekler yine FIFO sırasına göre yürütülür. (aosp/1455228)WorkManager
, uygulamanın veri deposu kötü durumdayken kurtarma işlemine çalışır. (aosp/1463103)
Hata Düzeltmeleri
ListenableWorker
'ler kesintiye uğradığında, daha sonra yeniden planlanabilmeleri için hemenENQUEUED
olarak işaretleyin. (aosp/1455618, b/170273988)
Sürüm 2.5.0-alpha03
14 Ekim 2020
androidx.work:work-*:2.5.0-alpha03
yayınlanır. 2.5.0-alpha03 sürümü bu taahhütleri içerir.
API Değişiklikleri
TestListenableWorkerBuilder
veTestWorkerBuilder
ham türler kullanmaz. (I883ad, b/169787349)
Hata Düzeltmeleri
- Varsayılan uygulama işleminin adını belirlemek için
ApplicationInfo
kullanın. (b/168716641, aosp/1429950) RemoteWorkManager
veRemoteWorkContinuation
için görünürlük kurallarını düzeltin. Bu API'ler artık@Restricted
olarak işaretlenmemektedir. (aosp/1432091):work:work-multiprocess
için ProGuard kurallarını düzeltin. (aosp/1432091)- Ön plan hizmetine bağlı uzun süreli çalışmalar 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ınlanır. 2.5.0-alpha02 sürümü bu taahhütleri içerir.
Yeni Özellikler
WorkInfo
'leri sorgulamak içinid
'leri kullanabilmek üzere WorkQuery'ye bir 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ığı bazı sorunların çözülmesini sağlar:- Genellikle her uygulama işleminde WorkManager'ın başlatılması gerekir. Bu çok iyi bir durum değildir çünkü SQLite çekişmesi 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
gibi görünen tam nitelikli bir işlem adıdır (ör.com.example:remote
). - Bir dizi yeni API:
RemoteWorkManager
veRemoteWorkContinuation
ileenqueue
,cancel
vequery
iş istekleri. Bu API'ler, birden fazla işlemde SQLite anlaşmazlığını önlemek içinLiveData
varyantlarını içermez.enqueue
,cancel
vequery
'ye yapılan tüm çağrılar, AIDL kullanılarak birprimary
uygulama sürecine yönlendirilir ve akıcı birListenableFuture
döndürülür. (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 çekişmesi başka sorunlara yol açar. WorkManager'da artık
API Değişiklikleri
- WorkManager artık tamamlanmamış bağımlılıkları olmayan tamamlanmış
WorkRequest
'leri daha agresif bir şekilde buduyor. Arabellek süresi7
günden1
güne 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ınlanır. 2.5.0-alpha01 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Gelecekte
WorkManager
ile daha iyi araçlar sunmamıza olanak tanıyan dahili API'lerde yapılan değişiklikler. Diğer güncellemeler için bizi takip etmeye devam edin.
Hata Düzeltmeleri
- Bazı cihazlarda ağ durumunu izlerken
SecurityException
değerlerini işleme (aosp/1396969)
Harici Katkı
- Zac Sweers tarafından
ArrayCreatingInputMerger
ile ilgili belgeleri düzeltin (github/43).
Sürüm 2.4.0
Sürüm 2.4.0
22 Temmuz 2020
androidx.work:work-*:2.4.0
yayınlanır. 2.4.0 sürümü bu kaydetmeleri içerir.
2.3.0 sürümünden beri yapılan önemli değişiklikler
WorkManager
'ın işlem içi zamanlayıcısı artık daha güçlü. Daha önce, işlemdekiScheduler
yalnızca gecikmemiş ve kısıtlamaları karşılanmış işlerin yürütülmesini dikkate alıyordu. Artık işlem içi planlayıcı, PeriodicWorkRequests dahil olmak üzere gelecekte yürütülebilecekWorkRequest
'leri izler. İşlemdekiScheduler
, planlama sınırlarını da dikkate almaz (ancak yine de WorkManager tarafından kullanılanExecutor
boyutuyla sınırlıdır). Bu, uygulamanın artık ön plandayken çok daha fazla WorkRequest yürütebileceği anlamına gelir.WorkManager
, gecikmeli işlerin ön planda yürütülmesini yönetmek için yeni bir yapılandırılabilirRunnableScheduler
özelliği de sunar. (aosp/1185778)- WorkManager artık RxJava 3'ü destekliyor. RxJava 3'ü kullanmak için aşağıdaki bağımlılığı eklemeniz gerekir:
implementation "androidx.work:work-rxjava3:2.4.0"
. (aosp/1277904) WorkQuery
kullanarakWorkInfo
sorguları yapma özelliği eklendi. Bu, geliştiricilerinWorkInfo
öğelerini birden fazla özelliğin kombinasyonuna göre sorgulamak istediğinde kullanışlıdır. 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
'ten teşhis bilgileri isteme özelliğini ekleyin:adb shell am broadcast -a "androidx.work.diagnostics.REQUEST_DIAGNOSTICS" -p "<your_app_package_name>"
Bu sayede aşağıdakiler gibi birçok yararlı bilgiye ulaşabilirsiniz:
- Son 24 saat içinde tamamlanan WorkRequest'ler.
- Şu anda ÇALIŞAN WorkRequest'ler.
- Planlanmış WorkRequest'ler. (aosp/1235501)
APPEND
'a benzer ancak ön koşulların iptal edildiği veya başarısız olduğu bir zincirin yerini alanExistingWorkPolicy.APPEND_OR_REPLACE
öğesini ekleyin. (b/134613984, aosp/1199640)Gelecekte yürütülmesi gereken WorkRequest'leri izlemek için özel bir
RunnableScheduler
ekleme olanağı sunun. Bu, işlem içi planlayıcı tarafından kullanılır. (aosp/1203944)DelegatingWorkerFactory
kullanırken yetki verilecek fabrikaları dinamik olarak ekleme desteği eklendi. (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 tutan yeni lint kuralları:
setForegroundAsync()
API'leri kullanılırken doğruforegroundServiceType
kullanılması. (b/147873061, aosp/1215915)- WorkManager'ın JobService API'lerini doğrudan kullanırken kullanması gereken JobScheduler kimliklerini belirtme. aosp/1223567
- Varsayılan
WorkerFactory
kullanılırkenListenableWorker
uygulamaların artıkpublic
olmasını sağlayan yeni bir lint kuralı eklendi. (aosp/1291262)
ListenableWorker
tamamlanmadan tamamlanmayansetForegroundAsync()
çağrıları artık döndürülenListenableFuture
üzerinde birIllegalStateException
aracılığıyla sinyallenecek. (aosp/1262743)Ön plandaki
Worker
kesintiye uğradıktan sonraForegroundService
'ün 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ınlanır. 2.4.0-rc01 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- İşlem içi planlayıcı artık işlemin adını belirlemek için daha iyi API'ler kullanıyor. Bu, birden fazla işlem kullanan uygulamaları daha iyi desteklemek için yararlıdır. (aosp/1324732)
Sürüm 2.4.0-beta01
20 Mayıs 2020
androidx.work:work-gcm:2.4.0-beta01
, androidx.work:work-runtime:2.4.0-beta01
, androidx.work:work-runtime-ktx:2.4.0-beta01
, androidx.work:work-rxjava2:2.4.0-beta01
ve androidx.work:work-testing:2.4.0-beta01
serbest bırakıldı. 2.4.0-beta01 sürümü bu taahhütleri 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
'ün, ön plan hizmetine bağlı birWorker
örneğini birden fazla kez çalıştırmaya çalıştığı hatayı düzeltme (b/156310133, aosp/1309853)DelegatingWorkerFactory
kullanırken yetki verilecek fabrikaları dinamik olarak ekleme desteği eklendi. (b/156289105, aosp/1309745)BATTERY_NOT_LOW
kısıtlamaları için izlemeyi platformla daha uyumlu hale getirin. (aosp/1312583)
Sürüm 2.4.0-alpha03
29 Nisan 2020
androidx.work:work-*:2.4.0-alpha03
yayınlanır. 2.4.0-alpha03 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
- WorkManager artık RxJava 3'ü destekliyor. RxJava 3'ü kullanmak için aşağıdaki 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
- Bir
ListenableWorker
'un yürütülmesi tamamlandıktan sonrasetProgressAsync()
çağrıldığında artıkListenableFuture
aracılığıyla birException
sinyali gönderilir. (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
değerlerini yoksayabilirsiniz. (b/153246136, aosp/1280813)
Sürüm 2.4.0-alpha02
1 Nisan 2020
androidx.work:work-*:2.4.0-alpha02
yayınlanır. 2.4.0-alpha02 sürümü bu taahhütleri içerir.
Yeni Özellikler
WorkRequest
'ler hemConstraints.setRequiresCharging(...)
hem deConstraints.setRequiresDeviceIdle(...)
gerektirdiğinde uyarı veren yeni bir Lint kuralı eklendi. Bazı cihazlar hiçbir zaman aynı anda şarj olmuyor ve boşta kalmıyor. Bu nedenle, bu tür istekler beklenenden daha az sıklıkta yayınlanır. (aosp/1253840)
API Değişiklikleri
WorkQuery
kullanarakWorkInfo
sorguları yapma özelliği eklendi. Bu, geliştiricilerinWorkInfo
öğelerini birden fazla özelliğin kombinasyonuna göre sorgulamak istediğinde kullanışlıdır. Daha fazla bilgi içinWorkQuery.Builder withStates(...)
,WorkQuery.Builder withTags(...)
veyaWorkQuery.Builder withUniqueWorkNames(...)
sayfasına bakı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
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ınlanır. Sürüm 2.4.0-alpha01 bu kaydetmeleri içerir.
Yeni Özellikler
WorkManager
'ın işlem içi zamanlayıcısı artık daha güçlü. Daha önce, işlem içi planlayıcı yalnızca gecikmeyen ve kısıtlamaları karşılanan işleri yürütmeyi dikkate alıyordu. Artık işlem içi planlayıcı,PeriodicWorkRequest
'lar da dahil olmak üzere gelecekte yürütülebilecekWorkRequest
'leri izler. İş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 bilgileri isteme özelliği eklendi. Bu bilgiler aşağıdakiler dahil birçok yararlı bilgi sağlar:- Son 24 saat içinde tamamlanan WorkRequest'ler.
- Şu anda ÇALIŞAN WorkRequest'ler.
- Planlanmış Çalışma İstekleri. (aosp/1235501)
Aşağıdakileri zorunlu tutan yeni lint kuralları:
setForegroundAsync()
API'leri kullanılırken doğruforegroundServiceType
kullanılması. (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
'a benzer ancak ön koşulların iptal edildiği veya başarısız olduğu bir zinciri yerine alanExistingWorkPolicy.APPEND_OR_REPLACE
öğesini ekleyin. (b/134613984, aosp/1199640)Gelecekte yürütülmesi gereken
WorkRequest
'leri izlemek için özel birRunnableScheduler
ekleme olanağı sağlayın. Bu, işlem içi 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()
ve yeni API'lere geçişe yardımcı olan yeni Lint kuralları eklendi. (b/150080946, aosp/1242665)
2.3.4 sürümü
2.3.4 sürümü
18 Mart 2020
androidx.work:work-*:2.3.4
yayınlandı. 2.3.4 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- 10 dakikalık yürütme süresi aşıldıktan sonra, uzun çalışan
Worker
örneklerinin birden fazla örneğin çalıştırılmasına neden olan hata düzeltildi. (aosp/1247484, b/150553353) - WorkManager'ın lint (
IssueRegistry
) sorunu düzeltildi. Katkıda bulunduğunuz için Slack'tan @ZacSweers'e teşekkür ederiz. (aosp/1217923)
Sürüm 2.3.3
Sürüm 2.3.3
4 Mart 2020
androidx.work:work-*:2.3.3
yayınlandı. 2.3.3 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
Worker
'nin kesintiye uğraması durumunda yeniden planlamanın doğru şekilde yapılmaması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ı. 2.3.2 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- WorkManager'ın, nadir durumlarda JobScheduler'daki 100 iş sınırını aşmasına neden olan sorun düzeltildi. (aosp/1226859, b/149092520)
- ConstraintControllers'daki yarış koşulu düzeltildi. (aosp/1220100)
- Uzun süre çalışan işçiler için yönetim ön plan hizmet yaşam döngüsü iyileştirildi. (aosp/1226295)
- Çalışan iptal edildikten sonra uzun süre çalışan çalışanlar için bildirimlerin iptal 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ınlanır. 2.3.1 sürümü bu taahhütleri içerir.
Hata düzeltmeleri
- Ön planda bir
Service
etkinken ç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ı sürümüne bağlı. (aosp/1217729)ForegroundInfo
içindeforegroundServiceType
kullanıldığındaAndroidManifest.xml
içinde birforegroundServiceType
belirtilmesini sağlamak için lint kuralları eklendi. (aosp/1214207, b/147873061)
Sürüm 2.3.0
Sürüm 2.3.0
22 Ocak 2020
androidx.work:work-*:2.3.0
, 2.3.0-rc01
tarihinden bu yana herhangi bir değişiklik içermeden yayınlandı. 2.3.0 sürümü bu taahhütleri içerir.
2.2.0 sürümünden beri yapılan önemli değişiklikler
ListenableWorker#setForegroundAsync()
üzerinden uzun süren veya önemli çalışmalar için destek.ListenableWorker#setProgressAsync()
üzerinden çalışan ilerlemesi için destek.- 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ı. 2.3.0-rc01 sürümü bu taahhütleri içerir.
Bu sürüm, 2.3.0-beta02
ile aynıdır
Hata düzeltmeleri
work-testing
yapısı artıkwork-runtime-ktx
öğ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ınlanır. 2.3.0-beta02 sürümü bu taahhütleri 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) enqueueUniquePeriodicWork()
yerinePeriodicWorkRequest
içinenqueue()
kullanıldığında bir lint uyarısı eklendi. (aosp/1166032)
API değişiklikleri
ForegroundInfo
artıkListenableWorker.setForegroundAsync()
kullanılırken kullanılacaknotificationId
değerini belirtmenizi gerektiriyor. Bu, zarar veren bir değişikliktir. Bu sayede 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ınlanır. 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
işlevinin 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ınlanır. 2.3.0-alpha03 sürümü bu taahhütleri içerir.
Yeni özellikler
AndroidManifest.xml
'ye başka bir bileşen kaydetmenize gerek kalmadanWorkRequest
'leri iptal etmenizi kolaylaştıranWorkManager.createCancelPendingIntent()
API eklendi. Bu API, özellikleNotification
'lardanWorkRequest
'leri iptal etmeyi kolaylaştırır. Bu özelliğin 2.3.0 sürümünde yeni ön plan API'leriyle birlikte kullanılabileceğini umuyoruz.- WorkManager artık
androidx.room:*:2.2.0
kararlı sürümüne bağlıdır.
API değişiklikleri
- Temel platform API'leriyle daha tutarlı olması için
ForegroundInfo.getNotificationType()
,ForegroundInfo.getForegroundServiceType()
olarak yeniden adlandırıldı. (b/142729893, aosp/1143316)
Hata düzeltmeleri
- İşlem dışında gereksiz
setTransactionSuccessful()
çağrısından kaynaklanan hata düzeltildi. Bu durum, nadiren gerçekleşen taşıma işlemlerinde görülür. (b/142580433, aosp/1141737)
Sürüm 2.3.0-alpha02
9 Ekim 2019
androidx.work:work-*:2.3.0-alpha02
yayınlandı. 2.3.0-alpha02 sürümü bu taahhütleri içerir.
Yeni özellikler
- WorkManager artık OS tarafından etkin tutulması gereken uzun süreli veya önemli işlerin çalıştırılmasını desteklemektedir. Daha fazla bilgi için
ListenableWorker#setForegroundAsync()
(veya Kotlin içinCoroutineWorker#setForeground()
) sayfasına bakın. (aosp/1133636)
API değişiklikleri
Data
'dakicontainsKey
API'sihasKeyWithValueOfType
olarak yeniden adlandırılır.ktx
kitaplığındaki ilgili uzantı yöntemi de yeniden adlandırıldı. (b/141916545)
Hata düzeltmeleri
- WorkManager, sıraya eklenen
WorkRequest
sayısı planlama sınırlarına yaklaştığında işleri adil bir şekilde planlar. (aosp/1105766) - WorkManager,
ListenableWorker#onStopped()
işlevini yalnızca iş henüz tamamlanmadıysa çağırır. (b/140055777) - WorkManager artık bir işleyici kesintiye uğradığında veya son durumuna ulaştığında ilerleme bilgilerini kaldırır. (aosp/1114572)
Data
artık çok daha kullanışlı birtoString()
temsil şekline sahip. (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ı yedekleme olmayan bir dizinde saklar. (b/114808216)
Sürüm 2.3.0-alpha01
22 Ağustos 2019
androidx.work:work-*:2.3.September 5, 20190-alpha01
yayınlanır. Bu sürüme dahil edilen taahhütleri burada bulabilirsiniz.
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
'ye gönderilen giriş verilerinin beklenen türde anahtarlara sahip olduğunu doğrulamak için kullanılabilecek bircontainsKey()
API'sine sahiptir. (b/117136838)Data
artıkData.toByteArray()
veData.fromByteArray()
kullanılarak serileştirilebilir.Data
için sürüm garantisi bulunmadığından bu anahtarı kalıcı tutmamalı veya uygulamalar arasında IPC için kullanmamalısınız. Yalnızca aynı uygulamanın birden fazla işlemi arasında kullanılması güvenlidir.Configuration.setInputMergerFactory
aracılığıylaInputMergerFactory
belirtme özelliği eklendi. (b/133273159)
API değişiklikleri
- Bir
WorkerFactory
daha önce çağrılan birListenableWorker
örneği döndürürse WorkManager birIllegalStateException
örneği atar. (b/139554406) ListenableFuture
iptaliyle veListenableWorker
'dekionStopped()
geri aramasıyla ilgili doküman güncellemeleri. (b/138413671)
Hata düzeltmeleri
- İşlemdeki Scheduler artık
idle
kısıtlamasına sahipWorkRequest
'leri yoksayar. Bu istekler artık yalnızca cihaz gerçektenidle
olduğundaJobScheduler
tarafından alınır. (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ınlanır. Bu sürüme dahil edilen taahhütleri burada bulabilirsiniz.
Bu sürüm androidx.work:work-*:2.2.0-rc01
ile aynıdır.
2.2.0'daki 2.1.0'a kıyasla önemli değişiklikler
androidx.work:work-gcm:2.2.0
, Google Play Hizmetleri API düzeyleri 22 ve altı için kullanılabilirken GCMNetworkManager'ın planlayıcı olarak kullanılmasını destekleyen yeni bir Maven yapısıdır. Bu, eski API sürümlerinde daha güvenilir ve performanslı arka plan işlemeye yardımcı olan isteğe bağlı bir bağımlılıktır. Uygulamanız Google Play Hizmetleri kullanıyorsa GCMNetworkManager desteğini otomatik olarak almak için bu bağımlılığı gradle dosyanıza ekleyin. Play Hizmetleri kullanılamıyorsa WorkManager eski cihazlarda AlarmManager'ı kullanmaya devam eder.
Sürüm 2.2.0-rc01
30 Temmuz 2019
androidx.work:work-*:2.2.0-rc01
yayınlandı. Bu sürüme dahil edilen taahhütleri burada bulabilirsiniz.
Hata düzeltmeleri
- AlarmManager uygulamasında, hizmetin erken kapanmasına neden olan ve nadir durumlarda
RejectedExecutionException
ile sonuçlanan 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ınlanır. Bu sürüme dahil edilen taahhütleri burada bulabilirsiniz.
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ınlanır. Bu sürüme dahil edilen taahhütleri burada bulabilirsiniz.
Yeni özellikler
androidx.work:work-gcm:2.2.0-beta01
, Google Play Hizmetleri API düzeyleri 22 ve altı için kullanılabilirken GCMNetworkManager'ın planlayıcı olarak kullanılmasını destekleyen yeni bir Maven yapısıdır. Bu, eski API sürümlerinde daha güvenilir ve performanslı arka plan iş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'a geri dönmeye devam eder.
Hata düzeltmeleri
- Nvidia Shield K1 tabletlerde ağ durumunu izlerken
IllegalArgumentException
hatası için düzeltme. (aosp/1010188)
2.1.0 sürümü
2.1.0 sürümü
11 Temmuz 2019
androidx.work:work-*:2.1.0
yayınlanır. Bu sürüm androidx.work:work-*:2.1.0-rc01
ile aynıdır.
2.0.1 sürümünden beri yapılan önemli değişiklikler
work-runtime-ktx
için artık Java 8 gereklidir. Herhangi bir sorunla karşılaşırsanızbuild.gradle
sayfanıza şunları ekleyebilirsiniz:kotlinOptions { jvmTarget = "1.8" }
- WorkManager için isteğe bağlı ilk kullanıma hazırlama özelliği eklendi. Bu özellik, WorkManager'ı yalnızca referans verildiğinde oluşturur. 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. WorkManager.getInstance()
ile ilgili tüm referanslarıWorkManager.getInstance(Context)
olarak değiştirin. Bu değişiklik kapsamında,WorkManager.getInstance()
desteği sonlandırıldı. İsteğe bağlı başlatma işlemi yapmıyor olsanız bile yeniWorkManager.getInstance(Context)
değişim cihazını aramak her zaman daha güvenlidir.
PeriodicWorkRequest
artık ilk gecikmeleri destekliyor. İlk gecikme ayarlamak içinPeriodicWorkRequest.Builder
üzerindesetInitialDelay
yöntemini kullanabilirsiniz. b/111404867DelegatingWorkerFactory
kullanarak bir veya daha fazla kayıtlıWorkerFactory
için yetki verme özelliği eklendi. b/131435993- WorkManager'ın tüm dahili muhasebe işlemleri için kullandığı
Executor
öğesiniConfiguration.Builder.setTaskExecutor
aracılığıyla özelleştirme özelliği eklendi. work-testing
yapıtındaTestWorkerBuilder
veTestListenableWorkerBuilder
kullanılarak birim test edilebilirWorker
veListenableWorker
sınıfları oluşturma özelliği eklendi.work-testing
'ün artık Kotlin'i bağımlılık olarak çektiğini ve varsayılan olarak birkaç Kotlin uzantısı içerdiğini unutmayın.
- Çalıştırma deneme sayısı
WorkInfo
değerine eklendi. b/127290461 Data
türleri artık bayt ve bayt dizileri depolayabilir ve alabilir. Bu,Data
nesnenin maksimum boyutunu DEĞİŞTİRMEZ.- WorkManager artık
Room 2.1.0
'e bağlıdır. Bu, bazı veritabanı sorunlarını düzeltecektir.
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 işlemi devam ederken
JobScheduler
ile işler yürütülürken uygulamanın kilitlenmesine neden olan hata düzeltildi b/135858602.
Sürüm 2.1.0-beta02
20 Haziran 2019
androidx.work:work-*:2.1.0-beta02
yayınlanır. Bu sürüme dahil edilen taahhütleri burada bulabilirsiniz.
Hata düzeltmeleri
TestListenableWorkerBuilder
artıkListenableWorker
örnekleri oluştururken doğruWorkerFactory
değerini kullanıyor. b/135275844- İşlem sona erdiğinde
WorkRequest
'lerin yürütme zaman 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ınlanır. Bu sürüme dahil edilen taahhütleri burada bulabilirsiniz.
Hata düzeltmeleri
- WorkManager artık
Room 2.1.0
'e bağlıdır. Bu, bazı veritabanı sorunlarını düzeltecektir. - Ana iş parçacığında bazı başlangıç diski G/Ç işlemleri kaldırıldı.
- Kısıt izlemede olası bir kilitlenme düzeltildi. b/134361006
- WorkManager ile ilişkili geçersiz işler önceden iptal edildi. b/134058261
- Yanlış davranan 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
ile ilgili 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 uğraşırken karşılaşılan 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şleri planlarken
JobScheduler
'ün uygulanmasında OEM'ye özgü hatalarla ilgili geçici çözüm. - AlarmManager tabanlı planlayıcıda, daha önce nadir görülen kilitlenmelere neden olan hizmet yaşam süreleriyle ilgili iyileştirmeler yapıldı. (b/133313734)
Sürüm 2.1.0-alpha02
16 Mayıs 2019
WorkManager 2.1.0-alpha02 sürümü yayınlandı. Bu sürümde birkaç yeni API yer alıyor.
API Değişiklikleri
PeriodicWorkRequest
cihazları artık ilk gecikmeleri destekliyor. İlk gecikme ayarlamak içinPeriodicWorkRequest.Builder
üzerindesetInitialDelay
yöntemini kullanabilirsiniz. b/111404867DelegatingWorkerFactory
kullanarak bir veya daha fazla kayıtlıWorkerFactory
'ye yetki verme özelliği eklendi. b/131435993WorkManager'ın tüm dahili muhasebe işlemleri için kullandığı
Executor
öğesiniConfiguration.Builder.setTaskExecutor
aracılığıyla özelleştirme özelliği eklendi.WorkRequest.keepResultsForAtLeast
(b/130638001), isteğe bağlı başlatma vePeriodicWorkRequest.Builder
(b/131711394) ile ilgili dokümanlar iyileştirildi.
Sürüm 2.1.0-alpha01
24 Nisan 2019
WorkManager 2.1.0-alpha01 sürümü yayınlandı. Bu sürümde birkaç yeni API yer alıyor. Bu sürümden itibaren 1.x sürümüne geri taşınmayacak yeni özellikler olacağını lütfen unutmayın. 2.x sürümüne geçmenizi öneririz.
API Değişiklikleri
- WorkManager için isteğe bağlı ilk kullanıma hazırlama özelliği eklendi. Bu özellik, WorkManager'ı yalnızca referans verildiğinde oluşturur. b/127497100 Projenizi isteğe bağlı başlatma için ayarlamak üzere:
- Otomatik başlatıcıyı devre dışı bırakın.
- Özel
Application
nesnenizeConfiguration.Provider
uygulayın. WorkManager.getInstance()
ile ilgili tüm referanslarıWorkManager.getInstance(Context)
olarak değiştirin. Bu değişiklik kapsamındaWorkManager.getInstance()
ürününü kullanımdan kaldırdık. İsteğe bağlı başlatma yapmasanız bile yeniWorkManager.getInstance(Context)
değişim cihazını çağırmak her zaman daha güvenlidir.
work-testing
yapıtındaTestWorkerBuilder
veTestListenableWorkerBuilder
kullanılarak birim test edilebilirWorker
veListenableWorker
sınıfları oluşturma özelliği eklendi.work-testing
artık bir bağımlılık olarak Kotlin'den yararlanır, ancak varsayılan olarak çeşitli Kotlin uzantılarını da içerir.
- Çalıştırma deneme sayısı
WorkInfo
değerine eklendi. b/127290461 Data
türleri artık bayt ve bayt dizileri depolayabilir ve alabilir. Bu,Data
nesnenin maksimum boyutunu DEĞİŞTİRMEZ.CoroutineWorker.coroutineContext
özelliği kullanımdan kaldırıldı. Bu alanCoroutineDispatcher
olarak yanlış yazılmıştır. Askıya alma işlevinin gövdesinde istediğiniz coroutineContext'e kendiniz gidebileceğiniz için artık buna ihtiyacınız yoktur.RxWorker.createWork()
veRxWorker.getBackgroundScheduler()
artık@NonNull
iade türleriyle ek açıklamaya sahip.
Sürüm 2.0.1
Sürüm 2.0.1
9 Nisan 2019
WorkManager 2.0.1 sürümü yayınlandı. Bu sürüm, 2.0.1-rc01 ile aynıdır.
Sürüm 2.0.1-rc01
3 Nisan 2019
WorkManager 2.0.1-rc01 sürümü yayınlandı. Bu sürüm bazı hata düzeltmeleri içeriyor. Eski 1.x sürüm kullanıcıları, bu değişikliklerin bazılarını 1.0.1-rc01 sürümünde de görebilir.
Hata Düzeltmeleri
- Robolectric testleri artık WorkManager ile düzgün şekilde çalışıyor. b/122553577
- Job Scheduler API'lerinde temizlenmeyen kısıtlamalarla ilişkili uç durum kilitlenmesi düzeltildi. b/129226383
- Uzun iş zincirleriyle ilgili bir
StackOverflowError
düzeltildi. b/129091233 PeriodicWorkRequest
s dokümanları, esnek çalışma saatlerinin API 23'te desteklenmediğini belirtecek şekilde güncellendi.- 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 sürümü yayınlandı. Bu sürüm, 2.0.0-rc01 ile aynıdır ve AndroidX bağımlılıkları içeren 1.0.0 kararlı sürümünün AndroidX sürümüdür. Eski 1.x sürümleri yerine bu sürümü hedeflemenizi öneririz. Tüm etkin geliştirmeler 2.x sürümünü hedefleyecek ve 1.x sürümüne yalnızca sınırlı bir süre boyunca kritik hata düzeltmeleri uygulanacaktır.
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ıdır ancak AndroidX bağımlılıkları vardır. Bu, 2.0.0 kararlı sürümüne ulaştığında bu sürümü eklemeniz gerekir. Eski 1.x sürümleri yalnızca bazı kritik hata düzeltmelerini alır. Tüm etkin geliştirmeler 2.x sürümünü hedefleyecek.
AndroidX öncesi bağımlılıklar
Referans dokümanları: 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
1.0.1 sürümü
9 Nisan 2019
WorkManager 1.0.1 sürümü yayınlandı. Bu sürüm, 1.0.1-rc01 ile aynıdır.
Bundan sonra 1.x dalında çok az güncelleme olacağından kullanıcıların WorkManager 2.x'e geçmesini önemle tavsiye ediyoruz. 1.x kitaplığı için yeni API'ler de yayınlanmayacaktır.
Sürüm 1.0.1-rc01
2 Nisan 2019
WorkManager 1.0.1-rc01 sürümü 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
- JobScheduler öncesi API'lerde kısıtlama izlemenin temizlenmemesi nedeniyle ortaya çıkan uç durum çökmesi düzeltildi. b/129226383
- Uzun iş zincirleriyle ilgili 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ümde iki hata düzeltmesi yer almaktadır.
Hata Düzeltmeleri
Uygulama kilitlenmesinden sonra
Worker
öğeleri artık doğru bir şekilde planlandı. b/124546316İşaretlenmemiş
Exception
gönderenWorker
öğeleri artık doğru şekildeFAILED
olarak işaretleniyor ve uygulama işlemini kilitlemiyor.
Sürüm 1.0.0-rc01
14 Şubat 2019
Bu, WorkManager'ın 1.0.0 kararlı sürümü için sürüm adayıdır. Bu sürümde bir hata düzeltmesi yer almaktadır.
Hata Düzeltmeleri
- AlarmManager tabanlı uygulama artık PeriodicWorkRequests için
flex
aralıklarını doğru şekilde dikkate alıyor. b/124274584
Sürüm 1.0.0-beta05
6 Şubat 2019
Bu sürümde bazı hata düzeltmeleri yer almaktadır.
Hata Düzeltmeleri
- API 23'te
JobScheduler.getPendingJob(...)
değerinin kullanıldığı bir durum düzeltildi. b/123893059 - Android 5.1 (API düzeyi 22) veya önceki sürümleri çalıştıran cihazlarda
NullPointerException
sorunu düzeltildi. b/123835104
Sürüm 1.0.0-beta04
4 Şubat 2019
Bu sürümde bazı hata düzeltmeleri yer almaktadır.
Hata Düzeltmeleri
- AlarmManager tabanlı uygulama için PeriodicWork'ın planlaması iyileştirildi.
- AlarmManager tabanlı uygulama kullanılırken WorkManager'ın kısıtlamaları doğru şekilde izleyemediği bir durum düzeltildi. b/123379508
- WorkManager'ın, AlarmManager tabanlı uygulama kullanılırken işlem ölümü üzerinde çalışmayı yeniden deneyememesi durumu düzeltildi. b/123329850
- AlarmManager tabanlı uygulama kullanılırken WorkManager'ın Wakelock'ları sızdırmasına neden olan bir durum düzeltildi.
Sürüm 1.0.0-beta03
25 Ocak 2019
Bu sürüm bazı hata düzeltmeleri içeriyor.
Hata Düzeltmeleri
- Bazı durumlarda çalışmanın düzgün şekilde yürütülmemesine neden olan bir gerileme
1.0.0-beta02
özelliğini kullanıma sunduk. b/123211993 - Çalışmanın, bekleme zamanlamasını düzgün şekilde dikkate almadığı bir durum düzeltildi. b/122881597
- Android 5.1 (API veya) veya daha eski sürümleri çalıştıran cihazlarda
ConcurrentModificationException
sorunu düzeltildi. Bu,1.0.0-beta02
'teki düzeltmenin devamı niteliğindedir. b/121345393 - Manifestimizde bu ek açıklamanın eksik olduğu bazı bileşenler için
exported=false
eklendi. - WorkManager'ın OS ile nasıl etkileşime geçtiğiyle ilgili bilgileri paket düzeyindeki belgelere ekledik.
Sürüm 1.0.0-beta02
15 Ocak 2019
Bu sürüm bazı hata düzeltmeleri içeriyor.
Hata Düzeltmeleri
- Android 6.0 (API düzeyi 23) çalıştıran cihazlarda periyodik çalışmaların aralık başına birden fazla kez çalıştırılabileceği durumlar düzeltildi. b/121998363
- Android 5.1 (API düzeyi 22) veya daha eski sürümleri çalıştıran cihazlarda
ConcurrentModificationException
sorunu düzeltildi. b/121345393 - Android 5.1 (API düzeyi 22) veya önceki sürümleri çalıştıran cihazlarda kısıtlamalar karşılanmadığı zaman çalışmanın hatalı şekilde yürütülmesi düzeltildi. b/122578012
- Bazı uç durumlarda daha hızlı olması için iş tamamlama işlemi optimize edildi. b/122358129
- WorkManager'ın kullandığı birden fazla
LiveData
örneği arasındaki olası yarış koşullarını gidermek için bir değişiklik eklendi. 1.1.1-rc01
yerineRoom
bağımlılık1.1.1
kullanılacak şekilde taşındı. Bu sürümler aynıdır. b/122578011
Sürüm 1.0.0-beta01
19 Aralık 2018
Bu sürümde API değişikliği yoktur. Bundan sonra, kritik bir sorun olmadığı sürece WorkManager'ın API'si bir sonraki sürüme kadar kararlı kalacak. Bu sürümde bazı hata düzeltmeleri yer almaktadır.
Hata Düzeltmeleri
- Başarıyla tamamlanmış üst çalışmaların daha önce iptal edilen alt çalışmaları artık yayınlanmayacak. b/120811767
- Düzgün şekilde başlatılmış günlük kaydı sınıfları (genellikle 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 yararlı olacak küçük bir API değişikliği içerir.
API Değişiklikleri
androidx.work.Result
,ListenableWorker
sınıfının iç sınıfı olacak şekilde taşındı. Bu, Kotlin'in üst düzeyResult
sınıfıyla yeniden düzenleme çakışmalarını önler. Bu, API'de yapılan ve mevcut işlevleri etkileyen 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 API değişiklikleri yer almaktadır. Lütfen aşağıdaki Çöken 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
, kapsamlı doküman güncellemeleri de içerir.
API Değişiklikleri
- Yeni bir yapı olan
work-rxjava2
,RxWorker
özelliğini kullanıma sunar. Bu,Single<Payload>
bekleyen birListenableWorker
. - Firebase JobDispatcher desteği, desteğin sonlandırılacağı için kaldırıldı. Bu, beta sürümüne geçiş yaptığımızda
work-firebase
yapının artık güncellenmeyeceği anlamına gelir. Gelecekte bir alternatif eklemeyi planlıyoruz. Payload
,Result
ile birleştirildi.Result
artıkResult.success()
(veyaResult.success(Data)
),Result.failure()
(veyaResult.failure(Data)
) veResult.retry()
üzerinden alabileceğiniz üç somut uygulama içeren "mühürlü sınıf" oldu.ListenableFuture
'leriniz artıkPayload
yerineResult
sonucunu veriyor.Worker
s,Data
çıkışı için alıcı ve ayarlayıcı yöntemlerine sahip değildir. Bu, önemli bir değişikliktir.- Yavaş tetiklenen içerik URI'lerini daha iyi desteklemek için
Constraints.Builder.setTriggerContentMaxDelay(long, TimeUnit)
veConstraints.Builder.setTriggerContentUpdateDelay(long, TimeUnit)
ile varyantları eklendi. b/119919774 WorkRequest.Builder.setBackoffCriteria(BackoffPolicy, Duration)
varyantı eklendi. Bu yöntem için API 26 gerekir.Operation.await()
veListenableFuture.await()
Kotlin uzantı yöntemleri eklendi.Operation.getException()
adlı dosyaOperation.getThrowable()
olarak yeniden adlandırıldı. Bu, önemli bir değişikliktir.ContentUriTriggers
sınıfı ve bu sınıfa referans veren yöntemler artık herkese açık olarak kullanılamaz. Bu, önemli bir değişikliktir.- API'yi kolaylaştırmak için
WorkManager
,WorkContinuation
veOneTimeWorkRequest
içindeki varargs yöntemlerinin geri kalanı kaldırıldı. Olası derleme sorunlarını düzeltmek için mevcut değişkenli bağımsız 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ır. Bu, önemli bir değişikliktir.
Hata Düzeltmeleri
- Marshmallow öncesi uygulamalar, halihazırda yürütülmekte olan bir görevin işlemden kaldırılmasından sonra kurtarma işleminde artık daha güvenilir.
observeForever
aracılığıyla gözlemlenenLiveData
, WorkManager aracılığıyla izlenir. Bu, Oda kitaplığı düzeltmesinin geri bağlantı noktasıdır. b/74477406Data.Builder.build()
, serileştirilmiş nesne maksimum boyutunu aşarsa artık istisna atar. 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 işler arasında daha fazla ayrım yapılır;
getWorkInfoById()
,ListenableWorker.onStopped()
sırasındaCANCELLED
State
ile birWorkInfo
döndürür. null
Result
öğeleriniListenableWorker
öğesinde başarısız olarak değerlendir. b/120362353- API 24 çalıştıran Shield Tablet'lerde bazen
IllegalArgumentException
hatası veren spekülatif düzeltme. b/119484416
Büyük API Değişiklikleri
- Firebase JobDispatcher desteği, desteğin sonlandırılacağı için kaldırıldı. Bu,
work-firebase
yapısının artık beta sürümüne geçilmeye başlanmayacağı anlamına gelir. Gelecekte alternatif bir yöntem eklemeyi planlıyoruz. Payload
,Result
ile birleştirildi.Result
artıkResult.success()
(veyaResult.success(Data)
),Result.failure()
(veyaResult.failure(Data)
) veResult.retry()
aracılığıyla edinebileceğiniz üç somut uygulamaya sahip "mühürlü bir sınıf"tır.ListenableFuture
'leriniz artıkPayload
yerineResult
ile sonuçlanıyor.Worker
s,Data
çıkışı için alıcı ve ayarlayıcı yöntemlerine sahip değildir.Operation.await()
veListenableFuture.await()
Kotlin uzantı yöntemleri eklendi.Operation.getException()
,Operation.getThrowable()
olarak yeniden adlandırıldı.ContentUriTriggers
sınıfı ve bu sınıfa referans veren yöntemler artık herkese açık olarak kullanılamaz.- API'yi kolaylaştırmak için
WorkManager
,WorkContinuation
veOneTimeWorkRequest
içindeki varargs yöntemlerinin geri kalanı kaldırıldı. Olası derleme sorunlarını düzeltmek için mevcut değişkenli bağımsız değişkenleriniziArrays.asList(...)
ile sarmalayabilirsiniz. Her yöntemin tek parametreli sürümlerini kullanmaya devam ediyoruz. WorkContinuation.combine(OneTimeWorkRequest, *)
varyant kaldırıldı. Kafa karıştırıcı bir API sunuyorlardı; mevcutcombine
yöntemleri daha anlaşılır.
Sürüm 1.0.0-alpha11
8 Kasım 2018
Bu sürüm, beta
itibarıyla kararlı API'ye dönüşecek birçok değişiklik içeriyor.
Bu sürümde önemli API değişiklikleri vardır. Lütfen aşağıdaki Önemli 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ı. Tüm ilgiligetStatus
yöntem varyantları, ilgiligetWorkInfo
varyantları olarak yeniden adlandırıldı. Bu, zarar veren bir değişikliktir.ListenableWorker.onStopped()
artık kabul etmiyor,WorkRequest
'un iptal edilip edilmediğini gösteren bir boole bağımsız değişkeni içerir.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, önemli bir değişikliktir.Constraints
'teki ayarlayıcılar artık herkese açık API'nin bir parçası değildir. Bu, zarar veren bir değişikliktir.WorkerParameters.getTriggeredContentUris()
veWorkerParameters.getTriggeredContentAuthorities()
daha önce döndürülen dizilerdir. 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, önemli bir değişikliktir.WorkStatus
sınıfının kurucusu artık herkese açık API'nin bir parçası değildir. Bu, önemli bir değişikliktir.Configuration.getMaxJobSchedulerID()
veConfiguration.getMinJobSchedulerID()
sırasıylaConfiguration.getMinJobSchedulerId()
veConfiguration.getMaxJobSchedulerId()
olarak yeniden adlandırıldı. Bu, önemli bir değişikliktir.- API'nin ergonomisini iyileştirmek için herkese açık API'ye çok sayıda
@NonNull
ek açıklama 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, önemli bir değişikliktir.enqueue
öğesinin hiçbir varyantı,WorkRequest
için artık değişken kabul etmiyor. Bu, önemli 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 fazla kez
initialize
WorkManager
yapmaya çalışmak artıkIllegalStateException
ile sonuçlanacaktı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ıştırma zamanının gelecekte olduğundan emin olun. Düzeltmeler b/118204399- Uygulama başlatılırken WorkManager kullanılırken olası disk G/Ç işlemlerini kaldırın. Düzeltmeler b/117796731
WorkConstraintsTracker
'te yarışma durumunu düzeltin. android-workmanager/issues/56 düzeltme
Büyük API Değişiklikleri
WorkStatus
,WorkInfo
olarak yeniden adlandırıldı. İlgili tümgetStatus
yöntem varyantları, karşılık gelengetWorkInfo
varyantları ile yeniden adlandırıldı.ListenableWorker.onStopped()
artık kabul etmiyor,WorkRequest
'un iptal edilip edilmediğini gösteren bir boole bağımsız değişkeni içerir.WorkManager
artık bu ayrımı yapmıyor.androidx.work.test
paketi,androidx.work.testing
paketi olarak yeniden adlandırıldı.Constraints
'teki ayarlayıcılar artık herkese açık API'nin bir parçası değildir.WorkerParameters.getTriggeredContentUris()
veWorkerParameters.getTriggeredContentAuthorities()
daha önce döndürülen dizilerdir. Bu yöntemler artık koleksiyonlar döndürüyor.ListenableWorker.onStartWork()
,ListenableWorker.startWork()
olarak yeniden adlandırıldı.WorkStatus
sınıfının kurucusu artık herkese açık API'nin bir parçası değildir.Configuration.getMaxJobSchedulerID()
veConfiguration.getMinJobSchedulerID()
sırasıylaConfiguration.getMinJobSchedulerId()
veConfiguration.getMaxJobSchedulerId()
olarak yeniden adlandırılır.WorkManager
üzerindeki tümenqueue
vecancel
yöntemlerinin varyantları artık yeni birOperation
türü döndürüyor.enqueue
'ün tüm varyantları artıkWorkRequest
için değişken sayıda bağımsız değişken kabul etmiyor.- İşlem başına birden fazla kez
initialize
WorkManager
yapmaya çalışmak artıkIllegalStateException
ile sonuçlanacaktır.
Sürüm 1.0.0-alpha10
11 Ekim 2018
Bu sürüm, geliştirici tarafından kontrol edilen eşzamansız işlemleri destekler. Bu sürümde önemli API değişiklikleri vardır. Lütfen aşağıdaki Önemli API Değişiklikleri bölümüne bakın.
WorkManager'ın alfa döneminin son aşamalarına girdiğini tahmin ediyoruz. API'nin beta sürümünde kararlı olmasını bekliyoruz. Lütfen sorun izleyicimize geri bildirim gönderin.
API Değişiklikleri
- Önceden var olan tüm
deprecated
yöntemleri ve sınıfları (özellikle varsayılanWorker
kurucusu) 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ı soyut bir 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
öğesini uygun şekilde güncellemeniz gerekir.ListenableFuture
referans uygulamaları,alpha02
'dekiFutures
paketinde sağlanır (WorkManager
bölümünün altına bakın).Worker
,ListenableWorker
'u genişletir ve soyut birResult doWork()
yöntemiyle eskisi gibi çalışmaya devam eder.- Bazı yöntemler ve üyeler
Worker
'tenListenableWorker
'a taşındı. - Kotlin coroutine'lerini (stabil sürümleri yayınlandıktan sonra) ve RxJava2'yi kullanan
ListenableWorker
'ler için yakında referans uygulamalar sağlayacağız.
WorkerFactory
arayüzü veDefaultWorkerFactory
somut uygulaması,WorkerFactory
adlı soyut bir sınıfta birleştirildi. Uygulama, kullanıcı tarafından oluşturulan tümWorkerFactory
örnekleri için son çare olarak varsayılan yansımaya dayalı davranışın çağrılmasını sağlar. Bu, zarar veren bir değişikliktir.WorkManager.synchronous()
veWorkContinuation.synchronous()
ile ilgili tüm yöntemler kaldırıldı. API'deki birçok yöntemin döndürülen 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()
öncedenvoid
değerini döndürürken artıkListenableFuture<Void>
değerini döndürüyor. İşlem tamamlandıktan sonra kodu çalıştırmak içinListenableFuture.addListener(Runnable, Executor)
veyaListenableFuture.get()
işlevini çağırabilirsiniz. - Bu
ListenableFuture
değerleri, işlemin başarılı olup olmadığını değil, yalnızca işlemin tamamlandığını gösterir. Bu bilgileri öğrenmek için yine WorkManager yöntemlerini zincirleme yapmanı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
'nin sözleşmesi kapsamındadır. - Senkron
getStatus*
yöntemleriyle eşleşmeyi sağlamak içinListenableFuture
varyantları sağladık veLiveData
döndüren mevcut yöntemlerin adını, adında açıkça "LiveData" olacak şekilde yeniden adlandırdık (örneğin,getStatusesByIdLiveData(UUID)
). Bu, API'de yapılan önemli bir değişikliktir.
- Artık
Hata Düzeltmeleri
- alpha09 sürümündeki yinelenen
androidx-annotations.pro
dosyalarıyla ilgili bilinen sorun düzeltildi.exclude 'META-INF/proguard/androidx-annotations.pro'
dosyasını gradle dosyanızdan silerek önceki sürüm notlarındaki geçici çözümü kaldırabilirsiniz. - Yeni
Worker
kurucusunu korumak için ProGuard yapılandırmaları eklendi. b/116296569 - Çalışmanın
REPLACE
d olduğu bir yarış koşulunda potansiyelNullPointerException
düzeltin. b/116253486 ve b/116677275 WorkContinuation.combine()
artık iki veya daha fazla yerine bir veya daha fazlaWorkContinuation
kabul ediyor. b/117266752
Büyük API Değişiklikleri
- Önceden var olan tüm
deprecated
yöntemleri ve sınıfları (özellikle varsayılanWorker
kurucusu) 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
iade eder.
Sürüm 1.0.0-alpha09
19 Eylül 2018
Bilinen Sorun
"META-INF/proguard/androidx-annotations.pro'nun işletim sisteminden bağımsız yolu ile birden fazla dosya bulundu" sorunuyla karşılaşırsanız alfa10 sürümünde sorunu düzeltirken lütfen geçici bir çözüm olarak aşağıdakini gradle dosyanıza ekleyin:
Groovy
android { packagingOptions { exclude 'META-INF/proguard/androidx-annotations.pro' } }
Kotlin
android { packagingOptions { exclude("META-INF/proguard/androidx-annotations.pro") } }
Hata Düzeltmeleri
- "100 iş" hatası için gereken başka bir düzeltme eklendi. b/115560696
- Yarış koşullarından kaynaklanan yabancı anahtar kısıtlama 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 bekleme süresini zorunlu kılma. b/113304626
- İyileştirilmiş mesaj dizileri, kitaplığın dahili olarak kullanılmasını sağlar.
LiveData
'ün dahili olarak tekilleştirilmesiyle ilgili olası sorunu düzeltin.
API Değişiklikleri
- Artık
WorkManager.Configuration
kapsamında birWorkerFactory
belirterek çalışma zamanında kendiWorker
örneklerinizi oluşturabilirsiniz. Yedek fabrika, WorkManager'ın önceki sürümlerinin davranışıyla eşleşenDefaultWorkerFactory
olur.Worker
veNonBlockingWorker
için varsayılan kurucular artık desteği sonlandırılmış olarak işaretlendi. Lütfen yeni kurucuyu (Worker(Context, WorkerParameters)
) kullanın vesuper(Context, WorkerParameters)
işlevini çağırın. WorkManager'ın gelecekteki sürümlerinde varsayılan kurucu kaldırılacaktır.
- Yeni
ListenableFuture
yapısını dahili olarak kullanmaya başladık (Guava bağımlılıkları içermez). ListenableFutures'ı gelecek sürümlerde API'ye ekleyeceğiz. Bu değişiklik,NonBlockingWorker
öğesinin nihai olarak gösterilmesini destekleyecek. TestDriver.setInitialDelayMet(UUID)
veTestDriver.setPeriodDelayMet(UUID)
aracılığıylaTestDriver
'te zamanlanmış çalışmayı tetikleme özelliğini ekleyin. b/113360060
Çarpıcı Değişiklikler
- Varsayılan
Worker
veNonBlockingWorker
kurucularının desteği sonlandırıldı. Lütfen en kısa zamanda yeni oluşturucuya geçin. Varsayılan kurucu, gelecekteki sürümlerde kaldırılacaktır.
Sürüm 1.0.0-alpha08
27 Ağustos 2018
Hata Düzeltmeleri
- Doğrudan önyükleme sırasında başlatılmayacakları için WorkManager bileşenleri doğrudan önyükleme farkında değil olarak açıkça 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 çalışmanın tekrar tekrar yürütülmemesi sorunu düzeltildi (yukarıdaki sorunla ilgili). b/112859683
- Uygulama işlemi zaten çalışıyorsa geri çekilme politikaları dikkate alınır.
Data
içindeki istisna mesajları, sınırın 10 KB olduğunu belirtecek şekilde düzeltildi.Configuration.setMaxSchedulerLimit(int)
olan maksimum değer,JobScheduler
işleminin tamamlanmasındaki bazı gecikmeleri hesaba katmak için 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ütülmesi tamamlanan işler artık diğer planlayıcılardaki bekleyen tüm kopyalarını doğru şekilde iptal ediyor. Bu durum,
JobScheduler
iş sınırının aşılmasına neden oldu. b/111569265 ConstraintTracker
'daConcurrentModificationException
sorunu düzeltildi. b/112272753Data.getBooleanArray(String)
veData.getIntArray(String)
işlevlerinin döndürülen 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ımları etkilemez. GelecekteNonBlockingWorker
, özel mesaj dizileri çözümleri için tam olarak desteklenen bir öğe haline gelecektir.Data.getBooleanArray(String)
veData.getIntArray(String)
işlevlerinin döndürülen tür ek açıklamaları@NonNull
yerine@Nullable
olarak değiştirildi. b/112275229- Kotlin uzantıları: Mevcut API'lerle daha tutarlı olması için
Map.toWorkData()
desteği sonlandırıldı ve üst düzey birworkDataOf(vararg Pair<String, Any?>)
eklendi.
Sürüm 1.0.0-alpha06
1 Ağustos 2018
Hata Düzeltmeleri
- İş planlarken veritabanı kilidini önleme. b/111801342
- Doz modundayken
PeriodicWork
ürününün planlanan şekilde çalışmamasına neden olan bir hatayı düzeltin. b/111469837 - Kısıtlamaları izlerken
WorkManager
'ün kilitlenmesine neden olan bir yarış koşulu düzeltildi. googlecodelabs/android-workmanager/issues/56 WorkRequest.Builder#build()
kullanırken benzersizWorkRequest
'ler 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 durumunda tekil nesne düzgün şekilde başlatılmazsa yöntem birIllegalStateException
hatası atar. Bu, API'de yapılan önemli bir değişikliktir.- WorkManager ayrıntı düzeyini kontrol edebilen yeni bir API (
Configuration.Builder.setMinimumLoggingLevel(int)
) eklendi. WorkManager varsayılan olarakLog.INFO
ve sonraki sürümleri günlüğe kaydeder. Data.getString()
işlevinin imzası değiştirildi. Artık varsayılan bir değer almıyor (örtülü olaraknull
). Bu, API'de yapılan ve mevcut uygulamaları etkileyen bir değişikliktir.- Yalnızca şirket içi kullanım için gereken bazı yöntemleri
@hide
olarak işaretledi. Bu,Constraints
oluşturucuyu,Data.toByteArray()
veData.fromByteArray(byte[])
'yi içerir. Bu, API'de yapılan ve mevcut uygulamaların çalışmasını engelleyen bir değişikliktir.
Hata Düzeltmeleri
- WorkManager artık bilinen otomatik yedekleme durumlarında iş yürütmez. Bu da kilitlenmeye neden olmuş olabilir. b/110564377
JobScheduler
kullanılırkenPeriodicWorkRequest
'lerin iki kez planlanması sorunu düzeltildi. b/110798652- Cihaz uyku moduna girdikten sonra
PeriodicWorkRequest
'ların doğru şekilde yürütülmemesiyle ilgili sorun düzeltildi. b/111469837 - Firebase JobDispatcher kullanılırken ilk gecikmelerle ilgili sorun düzeltildi. b/111141023
- Olası bazı yarış koşulları ve zamanlama sorunları giderildi.
- Artık ihtiyaç duyulmayan
BroadcastReceiver
'leri doğru şekilde serbest bıraktı. - Uygulamalar zorla kapatıldıktan sonra yeniden başlatıldığında yeniden planlama performansı optimize edildi.
- Belirli bir
WorkRequest
öğesinin sıraya eklenmesinden önce veya sonraTestScheduler.setAllConstraintsMet(UUID)
öğesinin çağrılmasına izin verilir. 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.Constraints
kurucusu,Data.toByteArray()
veData.fromByteArray(byte[])
bu kapsamdadır.
Sürüm 1.0.0-alpha04
26 Haziran 2018
Hata Düzeltmeleri
PeriodicWorkRequest
'ler artıkAlarmManager
tabanlı uygulama kullanılırken doğru şekilde yeniden planlanıyor.- Zorunlu durdurma veya yeniden başlatma işleminden sonra tüm çalışanları yeniden planlarken olası bir ANR düzeltildi. b/110507716
- Çeşitli WorkManager API'lerine boşluk değeri olabilirlik ek açıklamaları eklendi. b/110344065
- İşleyici yürütülmesi sırasında oluşan ve yakalanmayan istisnaları günlüğe kaydetme. b/109900862
- WorkManager'ın eski bir sürümüne geri dönmeye karar vermeniz durumunda veritabanını bozan taşıma işlemlerine izin verildi. b/74633270
- Yinelenen gizli etiketler oluşturulurken taşıma işleminin kilitlenmesi sorunu düzeltildi. Bu, yalnızca aynı gizli etiket biçimini kendiniz kullandıysanız ortaya çıkan çok nadir bir sorundur.
Sürüm 1.0.0-alpha03
19 Haziran 2018
Hata Düzeltmeleri
AlarmManager
tabanlı uygulamada bir yarış koşulu düzeltildi. b/80346526.Cihaz yeniden başlatıldıktan sonra
JobScheduler
kullanılırken yinelenen işler düzeltildi.İçerik URI tetikleyicileri olan işler artık yeniden başlatmalarda devam eder. b/80234744
Doküman güncellemeleri. b/109827628, b/109758949, b/80230748
WorkRequest
yeniden sıraya eklenirken kilitlenme sorunu düzeltildi. b/109572353.work-runtime-ktx
bağımlılığı kullanılırken ortaya çıkan 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 işlemi ile işletim sistemi tarafından istenen geçici durdurma işlemini ayırt edebilir. Herhangi bir durdurma istendiyseWorker.isStopped()
,true
değerini döndürür.Worker.isCancelled()
, çalışma açık bir şekilde iptal edildiğindetrue
değerini döndürür. b/79632247- API 28'de JobParameters#getNetwork() için destek eklendi. Bu içerik,
Worker.getNetwork()
aracılığıyla kullanıma sunuldu. JobScheduler
veyaAlarmManager
'ye kaç iş gönderilebileceğini zorunlu kılmak 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
için güvenli olan birJobScheduler
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
'leri sıraya eklemenize olanak tanır. b/79600647WorkManager.cancelAllWork()
, tümWorker
'leri iptal eder.WorkManager
'e bağlı kitaplıklar, dahili durumun daha fazla 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çinWorker
öğesinin tam nitelikli sınıf adı olan bir örtük etiket eklendi. Bu sayede,tag
olmadan veyaid
mevcut olmadığındaWorkRequest
'leri kaldırabilirsiniz. b/109572351
Zararlı Değişiklikler
Worker.WorkerResult
,Worker.Result
olarak yeniden adlandırıldı.Worker.onStopped
artıkWorker
açıkça iptal edildiğindetrue
olarak ayarlanan ek birisCancelled
parametresine sahiptir.
Sürüm 1.0.0-alpha02
24 Mayıs 2018
Hata Düzeltmeleri
State.isFinished()
için birNullPointerException
düzeltildi. b/79550068Worker
'lerinApplication.onCreate()
tarihinde yeniden planlanmasına neden olan sorun düzeltildi. b/79660657- İşletim sisteminin izin verdiğinden daha fazla iş planlayabileceğiniz bir sorun düzeltildi. b/79497378
Worker
ile ilişkili uyanık kalma kilitlerinin temizlenmesi arka plan iş parçacığına taşındı.- Beklemedeki tüm işler tamamlandığında
AlarmManager
uygulaması artık doğru şekilde temizleniyor. - İngilizce olmayan yerel ayarları etkileyen temizleme SQL sorguları düzeltildi. b/80065360
Data
sürümündefloat
için destek 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
'ler durdurulmaya tepki verebilir.Worker.isStopped()
, birWorker
'un durdurulup durdurulmadığını kontrol etmek için kullanılabilir.Worker.onStopped()
, hafif 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 korunur. WorkManager
uzantısı,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, garantili ve kısıtlama bilincine sahip arka plan işlerinin planlanmasını ve yürütülmesini kolaylaştırır. Bu ilk sürüm 1.0.0-alpha01
.