WorkManager
Son Güncelleme | Kararlı Sürüm | Sürüm Adayı | Beta Sürümü | Alfa Sürümü |
---|---|---|---|---|
30 Ekim 2024 | 2.10.0 | - | - | - |
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 belgelerine bakın.
Bağımlılıklar hakkında daha fazla bilgi için Derleme Bağımlılıkları Ekleme başlıklı makaleyi inceleyin.
Geri bildirim
Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileş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 belgelerine bakın.
Sürüm 2.10
Sürüm 2.10.0
30 Ekim 2024
androidx.work:work-*:2.10.0
yayınlanır. 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
WorkManager
'ten gelen 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.CoroutineWorker
işlevinin yürütüldüğü dağıtıcının kontrolü içinConfiguration.workerCoroutineContext
eklendi.- 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. 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ınlanır. 2.10.0-alpha04 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Ön plan hizmet türüne bağlı olarak, ön plan çalışanının yürütme zaman aşımı nedeniyle durdurulması için durma nedeni
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ınlanır. 2.10.0-alpha03 sürümü bu taahhütleri 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 hizmeti türlerinin kullanıma sunulduğu API 34 ve 35'e sahip 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
- Çalışmanın ön plan türü, iptal edilmiş Android 14 ön koşulu izinlerine sahipken
WorkManager
'ün uzun süre çalışan bir çalışanı (ör. ön plan çalışanı) yeniden başlatmaya çalışması nedeniyle oluşan kilitlenmeyi düzeltin. (b/333957914) - Yeni platform API'lerine erişim, AGP 7.3 veya sonraki sürümlerle (ör. R8 3.3 sürümü) R8 kullanıldığında ve AGP 8.1 veya sonraki sürümlerle (ör. D8 8.1 sürümü) tüm derlemelerde API modelleme aracılığıyla otomatik olarak gerçekleştiğinden, yeni platform API'lerine erişimin manuel olarak ana hatlarıyla belirtilmesi kaldırıldı. AGP kullanmayan istemcilerin D8 8.1 veya sonraki bir sürüme güncellemeleri önerilir. Daha fazla bilgi için bu makaleye göz atın. (Ia60e0, b/345472586)
Sürüm 2.10.0-alpha02
17 Nisan 2024
androidx.work:work-*:2.10.0-alpha02
yayınlanır. 2.10.0-alpha02 sürümü bu taahhütleri 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)CoroutineWorker
işlevinin yürütüldüğü dağıtıcının kontrolü içinConfiguration.workerCoroutineContext
eklendi.WorkManager
içindeDispatchers.Default
kullanımının tamamen önlenmesine 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. Koddaki boşluk varsayımlarının yanlış olması durumunda istemcilerin kaynak kodunda değişiklik yapılması gerekebilir. (If6757)
Sürüm 2.10.0-alpha01
24 Ocak 2024
androidx.work:work-*:2.10.0-alpha01
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
- Çalışmanın ön plan türü, iptal edilmiş Android 14 ön koşul izinlerine sahipken
WorkManager
'ün uzun süredir çalışan bir çalışanı (ör. ön plan çalışanı) yeniden başlatmaya çalışması nedeniyle oluşan kilitlenmeyi düzeltin. (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 sürümünden bu yana yapılan ö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 işleyicinin daha önce neden durdurulduğuna dair bir ipucu sağlıyor.getStopReason()
yöntemi aracılığıyla çalışandan veyagetStopReason()
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, üretimle eşleşen mesaj dizileriyle test edilmesi.
ExecutorsMode.PRESERVE_EXECUTORS
,Configuration
içinde ayarlanan yürütücüleri korumak ve gerçek ana iş parçacığı kullanmak içininitializeTestWorkManager
içinde kullanılabilir. CoroutineWorker
gibi coroutine API'leri, ek yapı work-runtime-ktx'den ana yapı work-runtime'a 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 kapatılabileceğinden,stopReason
'ü kullanılabilir bir şekilde raporlamada faydalı olabilir. (I21386)Clock
değerinin yapılandırma aracılığıyla ayarlanmasına ve işleyici testlerinin yürütme sıralamasını yönlendirmek için kullanılmasına izin verin. (Ic586e)getStopReason()
yöntemi,ListenableWorker
işlevine eklendi. Bu yöntem, çalışanın neden durdurulduğuyla ilgili ipucu verir. (I07060)- Closeguard'ın sızdırılan kaynaklarla ilgili 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 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 ana çalışma zamanındaki yapıda kullanılabilir. (I71a9a)- Düzenli çalışma programlarının doğru şekilde ayarlanmasına olanak tanıyan
setNextScheduleTimeOverride
yöntemi eklendi (I3b4da) - Planlanmış çalışma süresi bilgilerini almak için
getNextScheduleTimeMillis
eklendi.WorkInfo
(I797e4) - İlk gecikme ve dönemsellik bilgileri
WorkInfo
alanına eklenir. (I52f2f) getWorkInfosByTagFlow
,getWorkInfoByIdFlow
,getWorkInfosForUniqueWorkFlow
,getWorkInfosFlow
yöntemleri aracılığıyla akışlar üzerinden çalışanları gözlemleme yöntemi eklendi (If122a)Constraints
yapıcı 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 durak nedenleri için sabitler 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 işleyicinin daha önce neden durdurulduğuna dair bir ipucu sağlıyor.getStopReason()
yöntemi aracılığıyla çalışandan veyagetStopReason()
aracılığıylaWorkInfo
'ten sorgulanabilir.
API Değişiklikleri
stopReason
,WorkInfo
grubuna eklendi. İşleyici çalıştıktan sonrastopReason
değerini kullanılabilir hale getirir. Bir işleyici durdurulduktan sonra uygulamanın kendisi çok hızlı bir şekilde kapatılabileceğinden,stopReason
'ü kullanılabilir bir şekilde raporlamada faydalı olabilir. (I21386)- Saatin 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)
getStopReason()
yöntemi, çalışanın neden durdurulduğuyla ilgili ipucu verenListenableWorker
işlevine 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ınlanır. 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. 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
, ü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 diğer Kotlin'e özgü yardımcı programlar artık anawork-runtime
yapıda kullanılabilir. (I71a9a)- Düzenli çalışma programlarının doğru şekilde ayarlanmasına olanak tanıyan
setNextScheduleTimeOverride
yöntemi eklendi (I3b4da) getEarliestRunTimeMillis
,getNextScheduleTimeMillis
olarak yeniden adlandırıldı. (I2bd7a)- Sonraki planlı çalıştırma zamanı bilgileri
WorkInfo
alanına eklenir. (I797e4) - İlk gecikme ve dönemsellik bilgileri
WorkInfo
alanına 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) 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.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)
2.8.0 sürümü
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 sürümünden bu yana yapılan ö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 zincirlemeyi 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 zamanını 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)- setSchedulingExceptionHandler aracılığıyla
Consumer<Throwable>
sağlayarak planlama istisnalarını durdurma özelliği eklendi. - WorkManager'ı başlatmaya çalışırken sorun yaşanıp yaşanmadığı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)getForegroundInfo
,Worker
listesine eklendi. (Ic1ead)- Hem RxJava 2 hem de RxJava 3 için
RxWorker
artıkListenableFuture
döndürensetForegroundInfoAsync
yerineCompletable
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
- Açgözlü planlayıcıyla ilgili, yük altındayken işleyicilerin hemen çalışmasını engelleyen 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, esas olarak 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 bilgilerini 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
- Açgözlü planlayıcıyla ilgili, yük altındayken işleyicilerin hemen çalışmasını engelleyen 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üncellenmişse 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
başlatılmaya çalışırken sorun olup olmadığını belirlemek için kullanılabilecek bir İstisna İşleyen 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
WorkRequests
öğesini, orijinal sıraya ekleme süresini, zincirleme vb. koruyarak 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ı ve zincirleme işlemi korunarak güncelleme çalışmasına 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 zamanını 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 yaşanan karışıklığı azaltmak 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
'denandroidx.work:work-runtime
'a taşındı (I0010f, b/209145335)
Hata Düzeltmeleri
- SDK 33 ve sonraki sürümlerde POST_NOTIFICATIONS izninin verilmesini gerektiren API'lere
@RequiresPermission
eklendi. (Ie542e, b/238790278)
Sürüm 2.8.0-alpha02
6 Nisan 2022
androidx.work:work-*:2.8.0-alpha02
yayınlanır. 2.8.0-alpha02 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Kotlin kullanıcıları için uygun olan 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)
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
'üWorker
'a ekleyin. (Ic1ead)- Doğrudan kimliklerden WorkQuery oluşturmak için yardımcı yöntemler
WorkQuery.fromIds
eklendi. (Ie5bdf, b/199919736) - RxWorker artık
ListenableFuture
döndürensetForegroundInfoAsync
yerine kullanılabilecekCompletable
döndürensetForeground
işlevine sahiptir. (I85156) - RxJava 2 için RxWorker'da artık
ListenableFuture
döndürengetForegroundInfoAsync
yerine kullanılabilecekSingle
döndürengetForegroundInfo
işlevi vardır. (I21c91, b/203851459) - RxJava 3 için RxWorker artık
ListenableFuture
döndürengetForegroundInfoAsync
yerine kullanılabilecekgetForegroundInfo
döndürenSingle
değerine sahiptir. (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 hızlandırılmış olarak işaretlendiğinde hemen bir istisna atılır. bef1762
Sürüm 2.7.0
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 bu yana yapılan önemli değişiklikler
WorkManager, Android 12'deki ön plan hizmeti kısıtlamalarına yardımcı olmak için yeni bir
WorkRequest.Builder.setExpedited(...)
API'yi kullanıma sunuyor.setExpedited(...)
kullanıldığında WorkManager, Android 12'den itibaren JobScheduler'da 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 taahhütleri 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ınlanır. 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ğlayın. (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ündeki hata düzeltmelerini de içerir.
Sürüm 2.7.0-alpha04
2 Haziran 2021
androidx.work:work-*:2.7.0-alpha04
yayınlanır.
Bu sürüm, 2.6.0-beta01 sürümündeki değişiklikleri de içerir.
API Değişiklikleri
ListenableWorker.setForegroundAsync()
için artık desteğin sonlandırılması planlanmıyor.- Mümkünse
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ılmaz. Bunlar normal işler haline gelir.
Sürüm 2.7.0-alpha03
21 Nisan 2021
androidx.work:work-*:2.7.0-alpha03
yayınlanır. 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 işleyiciler için destek ekler. (Iaf200)WorkManager
2.6.0-alpha02
'ten: 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
'da:setProgressAsync()
için çok işlemli işleyici 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ınlanır. 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 sunar.Uygulamalar artık arka plandayken ön plan hizmeti başlatamaz. Bu nedenle, daha önce bir ön plan hizmetinin yaşam döngüsüne bağlı olan uzun süreli çalışmaları daha iyi desteklemek için uygulamalar
WorkRequest
'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ıldığında 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 ekleme
Sürüm 2.6.0
2.6.0 sürümü
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 bu yana 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çin kullanılanContentProvider
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.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)
Uzaktan bir işleme bağlanabilen RemoteListenableWorker uygulaması olan
RemoteCoroutineWorker
eklendi. (I30578)
Sürüm 2.6.0-rc01
4 Ağustos 2021
androidx.work:work-*:2.6.0-rc01
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
ile aynıdır.
Sürüm 2.6.0-beta02
21 Temmuz 2021
androidx.work:work-*:2.6.0-beta02
yayınlanır. 2.6.0-beta02 sürümü bu taahhütleri 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 olan bağlamayı doğru şekilde kaldırıyor. Bu sayedeRemoteWorkerService
doğru şekilde temizlenebiliyor. aosp/1743817ForceStopRunnable
artık yalnızca birincil uygulama sürecinde çalışır. Bu bir optimizasyondur ve birden fazla işlem kullanan uygulamalarda kaynak anlaşmazlığını önler. aosp/1749180, aosp/1761729
Sürüm 2.6.0-beta01
2 Haziran 2021
androidx.work:work-*:2.6.0-beta01
yayınlanır. 2.6.0-beta01 sürümü bu taahhütleri 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 işleyici desteği. (Ib6d08)- Diğer
androidx.startup.Initializer
'ların bunları bağımlılık olarak kullanabilmesi içinWorkManagerInitializer
'yi 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 taahhütleri 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'dan bu yana yapılan önemli değişiklikler
- Birden fazla işlem kullanan uygulamalar için yeni bir
:work:work-multiprocess
yapı. Bu sayede, iş isteği planlaması tek bir işlemde birleştirilerek performans kazanımları elde edilir.work-multiprocess
özelliğini kullanmak için aşağıdakiler için 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
kullanırkenWorkRequest
'larınızı yönetmek için RemoteWorkManager'ı da kullanmak istiyorsunuz. RemoteWorkManager her zaman belirtilen işleme ulaşır. İşlem içi planlayı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ırarak 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. Bu süre1
gün + keepResultsForAtLeast süresi olarak düşürülmüştür. (aosp/1419708)TestListenableWorkerBuilder
, testleri kolaylaştırmak için artıkListenableWorker
'ü genişleten somut sınıfı destekliyor. (aosp/1443299, b/169787349)- WorkManager İnceleyici, Android Studio Arctic Fox sürümünde kullanıma sunuldu.
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 öğeler güncellendikten sonragetWorkInfosLiveData
'ün doğru şekilde geçersiz kılınmaması sorunu düzeltildi. (aosp/1540566, b/173769028)- Nadir durumlarda veritabanı işlemlerinin başarılı olarak işaretlenmemesine neden olan bir 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 yol açan bir hata düzeltildi. (aosp/1530589) ConstraintTrackingWorker
'yi, yalnızca daha önce durdurulmamış birListenableWorker
'yi durduracak şekilde iyileştirin. (aosp/1496844, b/172946965)- androidx.work kitaplıklarını Java 8'i hedefleyecek şekilde güncelleme (Ibd2f2)
Sürüm 2.5.0-beta02
2 Aralık 2020
androidx.work:work-*:2.5.0-beta02
yayınlanır. 2.5.0-beta02 sürümü bu taahhütleri 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
öğelerinin 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. 2.5.0-beta01 sürümü bu taahhütleri 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şlemini dener. (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ığı birkaç sorunu çözmeye yardımcı olur. Örneğin:- WorkManager'ın genellikle her uygulama sürecinde başlatılması gerekir. SQLite anlaşmazlığı arttığı ve bu da başka sorunlara neden olduğu için bu durum pek iyi değildir. WorkManager'da artık
Configuration#setDefaultProcessName(processName)
kullanarak birincil bir uygulama işlemi belirlemek 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
). - Yeni API'ler:
RemoteWorkManager
veRemoteWorkContinuation
ileenqueue
,cancel
vequery
iş isteklerine erişim. 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)
- WorkManager'ın genellikle her uygulama sürecinde başlatılması gerekir. SQLite anlaşmazlığı arttığı ve bu da başka sorunlara neden olduğu için bu durum pek iyi değildir. 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
WorkManager
başlatılırkenWorkRequest
veJobScheduler
işlerinin senkronize olması için işleri proaktif olarak uyumlu hale getiriyor. (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
- Dahili API'lerde yapılan ve ileride
WorkManager
ile daha iyi araçlar sunmamıza olanak tanıyan değişiklikler. Gelişmeler 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üzeltme (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 taahhütleri 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, uygulama ön plandayken çok daha fazla WorkRequest çalıştırabileceğ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(...)
sayfasına bakı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ı bilgi edinebilirsiniz:
- 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ğı sağlayın. 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ı için izlemeyi platformla daha uyumlu hale getirin. (aosp/1312583)İşlem içi planlayıcı artık işlemin adını belirlemek için daha iyi API'ler kullanıyor. Bu, birden fazla işlem kullanan uygulamaları daha iyi desteklemek için yararlıdır. (aosp/1324732)
Aşağıdakileri zorunlu tutan yeni lint kuralları:
setForegroundAsync()
API'lerini kullanırken doğruforegroundServiceType
değerinin 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 önce 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ı sorunu düzeltildi. (b/155579898, aosp/1302153)WorkManager
'ün, ön plan hizmetine bağlı birWorker
örneğini birden fazla kez çalıştırmaya çalıştığı bir hatayı düzeltme (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
yayınlanır. 2.4.0-beta01 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Ön plandaki
Worker
kesintiye uğradıktan sonraForegroundService
'ün durdurulmaması sorunu 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 taahhütleri 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
yürütülmesi tamamlandıktan sonrasetProgressAsync()
çağrılırsa 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 olur ve boşta kalır. Bu nedenle, bu tür istekler beklenenden daha az sıklıkta çalıştırılı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
tamamlanmadan önce tamamlanmayansetForegroundAsync()
çağrıları artık döndürülenListenableFuture
üzerinde birIllegalStateException
aracılığıyla sinyallenecek. (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. 2.4.0-alpha01 sürümü bu taahhütleri 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 gecikmemiş ve kısıtlamaları karşılanmış 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. İşlem içi planlayıcı da planlama sınırlarını gözetmez (ancak yine de WorkManager tarafından kullanılanExecutor
boyutuyla sınırlıdır). Bu sayede uygulama, ön planda çalışırken çok daha fazlaWorkRequest
yürütebilir. (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 sayede aşağıdakiler gibi birçok yararlı bilgi edinebilirsiniz:- Son 24 saat içinde tamamlanan WorkRequest'ler.
- Şu anda ÇALIŞAN WorkRequest'ler.
- Planlanmış WorkRequest'ler. (aosp/1235501)
Aşağıdakileri zorunlu tutan yeni lint kuralları:
setForegroundAsync()
API'lerini kullanırken doğruforegroundServiceType
değerinin kullanılması. (b/147873061, aosp/1215915)WorkManager
'unJobService
API'lerini doğrudan kullanırken kullanması gerekenJobScheduler
kimliklerini belirtme. (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çinRxWorker
'tesetProgress()
desteği sonlandı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ınlanır. 2.3.4 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- 10 dakikalık yürütme aralığı aşıldığında uzun süre çalışan
Worker
'lerin birden çok örneğinin çalıştırılmasına neden olan bir hata düzeltildi. (aosp/1247484, b/150553353) - WorkManager'ın
IssueRegistry
lint hatası düzeltildi. Katkınız 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ınlanır. 2.3.3 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
Worker
'ün kesintiye uğraması durumunda doğru şekilde yeniden planlanmamasına neden olan hata düzeltildi. (b/150325687, aosp/1246571)
Sürüm 2.3.2
Sürüm 2.3.2
19 Şubat 2020
androidx.work:work-*:2.3.2
yayınlanır. 2.3.2 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Nadir durumlarda WorkManager'ın JobScheduler'daki 100 iş sınırını aştığı bir 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)
- İşçi iptal edildikten sonra uzun süre çalışan işçiler için bildirimlerin iptal yönetimi iyileştirildi. (aosp/1228346)
2.3.1 sürümü
2.3.1 sürümü
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 ilerleme durumu için destek.- WorkManager artık kitaplığın bir parçası olarak ek lint kuralları paketliyor. Bu kurallar, hataları erken yakalamanıza yardımcı olur.
Sürüm 2.3.0-rc01
8 Ocak 2020
androidx.work:work-*:2.3.0-rc01
yayınlanır. 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ı artıkwork-runtime-ktx
için birapi
bağımlılığı tanımlar. (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
'dan 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, önemli bir değişikliktir. Bu sayede, uzun süre çalışan birden fazlaWorker
'yi paralel olarak çalıştırabilirsiniz.WorkManager
, sağlananNotification
'ların kullanım sürelerini 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 yol açan bir hata düzeltildi. (aosp/1156444)
- Boş bir
WorkRequest
listesinin yanlış birWorkContinuation
zinciri oluşturulmasına neden olduğu hata düzeltildi. (b/142835274, aosp/1157051)
Bağımlılık değişiklikleri
- WorkManager artık Room 2.2.2 sürümünü kullanıyor.
Sürüm 2.3.0-beta01
20 Kasım 2019
androidx.work:work-*:2.3.0-beta01
yayınlanır. 2.3.0-beta01 sürümü bu taahhütleri içerir.
Yeni özellikler
- İsteğe bağlı başlatma kullanılırken
androidx.work.Configuration.Provider
'ün 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. Bunun 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
setTransactionSuccessful()
çağrısının gereksiz yere yapılmasından kaynaklanan bir 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ınlanır. 2.3.0-alpha02 sürümü bu taahhütleri içerir.
Yeni özellikler
- WorkManager artık işletim sistemi tarafından etkin tutulması gereken uzun süreli veya önemli işlerin çalıştırılmasını destekliyor. Daha fazla bilgi için
ListenableWorker#setForegroundAsync()
(veya Kotlin içinCoroutineWorker#setForeground()
) sayfasına bakın. (aosp/1133636)
API değişiklikleri
Data
içindekicontainsKey
API'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
'ü de destekler. (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
'ler artıksetProgressAsync()
API aracılığıyla ilerleme durumunu ayarlayabilir. AyrıcaCoroutineWorker
'de ilgili birsuspend
-ingsetProgress
API'si veRxWorker
'daSingle<Void>
döndüren birsetProgress
eklendi. Bu yeni API'ler sayesinde işçiler, ilgili birgetProgress
API'sine sahip olanWorkInfo
üzerinden ilerleme bilgilerini iletebilir. (b/79481554)Data
,Worker
'lere 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. Bu anahtarlar yalnızca aynı uygulamanın birden fazla işlemi arasında güvenli bir şekilde kullanılabilir.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 oluşturur. (b/139554406) ListenableFuture
iptaliyle veListenableWorker
'dekionStopped()
geri aramasıyla ilgili doküman güncellemeleri. (b/138413671)
Hata düzeltmeleri
- İşlemdeki planlayıcı artık
idle
kısıtlaması olanWorkRequest
öğelerini yoksayar. Bu istekler artık yalnızca cihaz gerçektenidle
olduğundaJobScheduler
tarafından alınır. (aosp/1089779) TestScheduler
artık testlerde dahili görev yürütücüsü için belirtilenExecutor
değerini doğru şekilde kullanıyor. (aosp/1090749)
Sürüm 2.2.0
Sürüm 2.2.0
15 Ağustos 2019
androidx.work:work-*:2.2.0
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'deki 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'a geri dönmeye devam eder.
Sürüm 2.2.0-rc01
30 Temmuz 2019
androidx.work:work-*:2.2.0-rc01
yayınlanır. 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
hatasına yol açan bir hata düzeltildi. (aosp/1092374) (b/138238197). - Bazı cihazlarda
JobScheduler
API'leri kullanılırken karşılaşılanNullPointerException
sorunu için bir 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
sürümünde yanlışlıkla eklenen jacoco 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 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'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'den sonraki önemli değişiklikler
work-runtime-ktx
için artık Java 8 gereklidir. Sorunla karşılaşırsanızbuild.gradle
dosyanıza aşağıdakileri ekleyebilirsiniz:kotlinOptions { jvmTarget = "1.8" }
- WorkManager için isteğe bağlı başlatma ö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ı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ı çağırmak 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
kullanıcısına 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 kullandığını ve varsayılan olarak birkaç Kotlin uzantısı içerdiğini unutmayın.
WorkInfo
için çalıştırma deneme sayısı eklendi. b/127290461Data
türleri artık bayt ve bayt dizileri depolayabilir ve alabilir. Bu işlem,Data
nesnelerinin maksimum boyutunu DEĞİŞTİRMEYECEKTİR.- 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ınlanır. Bu sürüme dahil edilen taahhütleri burada bulabilirsiniz.
Hata düzeltmeleri
- Yedekleme işlemi devam ederken
JobScheduler
ile işler yürütülürken uygulamanın kilitlenmesine neden olan hata düzeltildi b/135858602.
Sürüm 2.1.0-beta02
20 Haziran 2019
androidx.work:work-*:2.1.0-beta02
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 amaçlı çağrılar eklendi.
Sürüm 2.1.0-alpha03
5 Haziran 2019
androidx.work:*:2.1.0-alpha03
yayınlanır.
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
uygulamasında OEM'ye özgü hataları giderme. - AlarmManager tabanlı planlayıcıda, daha önce nadir görülen kilitlenmelere neden olan hizmet süreleriyle ilgili iyileştirmeler. (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
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
kullanıcısına 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ı başlatma ö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()
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ı ç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
'ün artık Kotlin'i bağımlılık olarak getirdiğini ancak varsayılan olarak birkaç Kotlin uzantısı da içerdiğini unutmayın.
WorkInfo
için çalıştırma deneme sayısı eklendi. b/127290461Data
türleri artık bayt ve bayt dizileri depolayabilir ve alabilir. Bu işlem,Data
nesnelerinin maksimum boyutunu DEĞİŞTİRMEYECEKTİR.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
değer döndürme 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ümde bazı hata düzeltmeleri yer almaktadır. 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 çalışıyor. b/122553577
- JobScheduler öncesi API'lerde kısıtlama izlemenin temizlenmemesi nedeniyle ortaya çıkan uç durum kilitlenmesi düzeltildi. b/129226383
- Uzun iş zincirleriyle ilgili bir
StackOverflowError
düzeltildi. b/129091233 - Esnek çalışma saatlerinin API 23'te desteklenmediğini belirtmek için
PeriodicWorkRequest
dokümanları güncellendi. - Kotlin dokümanlarında 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 sürümü yayınlandı. Bu sürüm, 1.0.0 kararlı sürümüyle aynıdır ancak AndroidX bağımlılıkları vardır. Bu sürüm 2.0.0 kararlı sürümüne ulaştığında bu sürümü eklemeniz gerekir. Eski 1.x sürümleri yalnızca bazı kritik hata düzeltmeleri alır. Tüm etkin geliştirmeler 2.x sürümünü hedefleyecektir.
AndroidX öncesi bağımlılıklar
Referans dokümanları: Java
Groovy
dependencies { def work_version = "1.0.1" // (Java only) implementation "android.arch.work:work-runtime:$work_version" // Kotlin + coroutines implementation "android.arch.work:work-runtime-ktx:$work_version" // optional - RxJava2 support implementation "android.arch.work:work-rxjava2:$work_version" // optional - Test helpers androidTestImplementation "android.arch.work:work-testing:$work_version" }
Kotlin
dependencies { val work_version = "1.0.1" // (Java only) implementation("android.arch.work:work-runtime:$work_version") // Kotlin + coroutines implementation("android.arch.work:work-runtime-ktx:$work_version") // optional - RxJava2 support implementation("android.arch.work:work-rxjava2:$work_version") // optional - Test helpers androidTestImplementation("android.arch.work:work-testing:$work_version") }
1.0.1 sürümü
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ümde bazı hata düzeltmeleri yer almaktadır.
Hata Düzeltmeleri
- Robolectric testleri artık WorkManager ile düzgün çalışıyor. b/122553577
- JobScheduler öncesi API'lerde kısıtlama izlemenin temizlenmemesi nedeniyle ortaya çıkan uç durum kilitlenmesi 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
Worker
artık uygulama kilitlendikten sonra doğru şekilde planlanıyor. b/124546316İşaretlenmemiş
Exception
atanWorker
'ler 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 seviyesi 22) veya daha eski 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.
- WorkManager'ın, AlarmManager tabanlı uygulamayı kullanırken kısıtlamaları doğru şekilde izleyemediği bir durum düzeltildi. b/123379508
- AlarmManager tabanlı uygulama kullanılırken WorkManager'ın işlem sona erdiğinde işi yeniden denemesi başarısız olduğunda ortaya çıkan bir sorun 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ümde bazı hata düzeltmeleri yer almaktadır.
Hata Düzeltmeleri
- Bazı durumlarda işin 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, geri çekilme zamanlamasını doğru şekilde dikkate almadığı bir durum düzeltildi. b/122881597
- Android 5.1 (API 22) veya önceki 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 işletim sistemiyle 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ümde bazı hata düzeltmeleri yer almaktadır.
Hata Düzeltmeleri
- Android 6.0 (API seviyesi 23) çalıştıran cihazlarda dönemsel çalışmanın aralık başına birden fazla kez çalışabileceği uç durum düzeltildi. b/121998363
- Android 5.1 (API seviyesi 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ında 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çeriyor.
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 uygulamaların çalışmasını etkileyen bir değişikliktir. b/120564418
Bölünme Oluşturan API Değişiklikleri
androidx.work.Result
,ListenableWorker
sınıfının iç sınıfı olacak şekilde taşındı.
Sürüm 1.0.0-alpha12
5 Aralık 2018
Bu sürüm, bazı önemli API değişiklikleri içerir. Lütfen aşağıdaki Önemli API Değişiklikleri bölümüne bakın. Bu sürümün ilk beta sürümümüz olarak yayınlanması muhtemeldir. alpha12
, kapsamlı doküman güncellemeleri de içerir.
API Değişiklikleri
- Yeni bir yapı olan
work-rxjava2
,RxWorker
özelliğini kullanıma sundu. Bu,Single<Payload>
bekleyebilecek 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 alternatif bir seçenek sunmayı 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
olarak sonuç veriyor.Worker
'lerdeData
çıkışı için alıcı ve ayarlayıcı yöntemleri yok. 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()
,Operation.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
API'lerindeki 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 bağımsız değişkenli sürümlerini kullanmaya devam ediyoruz. Bu, önemli 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 daha güvenilir bir şekilde kurtarma işlemi gerçekleştirebilir.
observeForever
üzerinden gözlemlenenLiveData
, WorkManager aracılığıyla izlenir. Bu, Room kitaplığı düzeltmesinin geriye dönük bir taşıması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 şekilde işleyemeyeceğiniz arka plan iş parçacığında gerçekleşiyordu.- Ayrıca, durdurulan ve iptal edilen işler arasında ayrım yapılır;
getWorkInfoById()
,ListenableWorker.onStopped()
sırasındaCANCELLED
State
ile birWorkInfo
döndürür. null
Result
'iListenableWorker
'de hata olarak değerlendirin. b/120362353- API 24 çalıştıran ve bazen
IllegalArgumentException
hatası veren Shield Tablet'ler için 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, beta sürümüne geçiş yaptığımızda
work-firebase
yapının artık güncellenmeyeceği anlamına gelir. Gelecekte alternatif bir seçenek sunmayı 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
olarak sonuç veriyor.Worker
'lerdeData
çıkışı için alıcı ve ayarlayıcı yöntemleri yok.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
API'lerindeki 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
sürümünde kararlı API olacak birçok değişiklik içerir.
Bu sürümde, API'de önemli değişiklikler yapılmıştır. Lütfen aşağıdaki API'de önemli değişiklikler bölümüne bakın.
API Değişiklikleri
work-runtime-ktx
yeni birCoroutineWorker
kullanıma sundu.WorkStatus
,WorkInfo
olarak yeniden adlandırıldı. Tüm ilgiligetStatus
yöntem varyantları, ilgiligetWorkInfo
varyantları olarak yeniden adlandırıldı. Bu, önemli bir değişikliktir.ListenableWorker.onStopped()
artık kabul etmiyor,WorkRequest
'ün 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, önemli bir değişikliktir.androidx.work.test
paketi,androidx.work.testing
paketi olarak yeniden adlandırıldı. Bu, önemli bir değişikliktir.Constraints
üzerindeki ayarlayıcılar artık herkese açık API'nin bir parçası değildir. Bu, önemli bir değişikliktir.WorkerParameters.getTriggeredContentUris()
veWorkerParameters.getTriggeredContentAuthorities()
daha önce döndürülmüş dizilerdir. Bu yöntemler artık koleksiyonlar döndürüyor. Bu, önemli 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ılır. 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 eklemek içinWorkManager.enqueueUniqueWork()
API'yi ekleyin.WorkManager
üzerindekienqueue
vecancel
yöntemlerinin tüm varyantları artık yeni birOperation
türü döndürüyor. Bu, önemli bir değişikliktir.enqueue
'ün tüm varyantları artıkWorkRequest
için değişken sayıda bağımsız değişken kabul etmiyor. Bu, önemli bir değişikliktir. Bunun yerine koleksiyonları kullanın. Mevcut kodu değiştirmek içinArrays.asList()
simgesini kullanabilirsiniz. Bunu, API yüzeyini ve yöntem sayısını azaltmak için yaptık.- Artık işlem başına birden fazla kez
initialize
WorkManager
yapmaya çalışmakIllegalStateException
ile sonuçlanacaktır. Bu, önemli bir değişikliktir.
Hata Düzeltmeleri
work-runtime-ktx
yapısındakiWorkRequest.Builder
'ler artıkListenableWorker
'leri 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ış koşulunu düzeltin. android-workmanager/issues/56 sorunu düzeltildi
Bölünme Oluşturan API Değişiklikleri
WorkStatus
,WorkInfo
olarak yeniden adlandırıldı. Tüm ilgiligetStatus
yöntem varyantları, ilgiligetWorkInfo
varyantları olarak yeniden adlandırıldı.ListenableWorker.onStopped()
artık kabul etmiyor,WorkRequest
'ün 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
üzerindekienqueue
vecancel
yöntemlerinin tüm 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.- Artık işlem başına birden fazla kez
initialize
WorkManager
yapmaya çalışmakIllegalStateException
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 çalışmayı destekler. Bu sürümde, API'de önemli değişiklikler yapılmıştır. Lütfen aşağıdaki API'de önemli değişiklikler 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 yapılan ve mevcut uygulamaların çalışmasını engelleyen bir değişikliktir. NonBlockingWorker
sınıfıListenableWorker
olarak yeniden adlandırıldı. Bu sınıf artık herkese açık ve kullanıma hazır.ListenableWorker
, ana iş parçacığında çağrılanListenableFuture<Payload> onStartWork()
adlı soyut bir yönteme erişim sağlar. İşi başlatmak ve aksama olmadan işlemek size bağlıdır. İşlem tamamlandığındaListenableFuture
öğesini uygun şekilde güncellemeniz gerekir.ListenableFuture
'lerin 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ı. - Yakında, Kotlin coroutine'lerini (kararlı sürümler yayınlandıktan sonra) ve RxJava2'yi kullanan
ListenableWorker
'ler için referans uygulamalar sağlayacağız.
WorkerFactory
arayüzü veDefaultWorkerFactory
somut uygulaması,WorkerFactory
adlı soyut bir sınıfta birleştirildi. Uygulama, 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, önemli 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 yapılan ve mevcut uygulamaların çalışmasını engelleyen bir değişikliktir.- Artık
ListenableFuture
kullanarak verileri senkronize olarak alabilir ve gözlemleyebilirsiniz. Örneğin,WorkManager.enqueue()
öncedenvoid
değerini döndürür iken 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 nesnelerdeki
cancel()
çağrıları, kafa karıştırıcı ve mantıklı bir şekilde açıklamaları zor oldukları için (operasyonu mu yoksa sonuçta ortaya çıkan çalışmayı mı iptal ediyorsunuz?) yoksayın. 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 - İşin
REPLACE
olduğu bir yarış koşulunda olasıNullPointerException
düzeltildi. b/116253486 ve b/116677275 WorkContinuation.combine()
artık iki veya daha fazla yerine bir veya daha fazlaWorkContinuation
kabul ediyor. b/117266752
Bölünme Oluşturan 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
döndürüyor.WorkManager.getStatus*LiveData()
LiveData
tane iade.
Sürüm 1.0.0-alpha09
19 Eylül 2018
Bilinen Sorun
"'META-INF/proguard/androidx-annotations.pro' işletim sisteminden bağımsız yoluna sahip birden fazla dosya bulundu" sorunuyla karşılaşırsanız alpha10'da sorunu düzeltirken geçici bir çözüm olarak lütfen aşağıdakileri 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
için 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ık içinde garanti sağlar.
LiveData
değerinin şirket içinde 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'ı gelecekteki sürümlerde API'ye ekleyeceğiz. Bu değişiklik,NonBlockingWorker
'ün gizlenmesinin kaldırılmasını destekleyecektir. TestDriver.setInitialDelayMet(UUID)
veTestDriver.setPeriodDelayMet(UUID)
aracılığıylaTestDriver
'te zamanlanmış çalışmayı tetikleme özelliği eklendi. b/113360060
Zararlı Değişiklikler
- Varsayılan
Worker
veNonBlockingWorker
kurucularının desteği sonlandırılıyor. Lütfen en kısa sürede yeni kurucuya geçin. Gelecekteki sürümlerde varsayılan kurucu 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ılmaması için WorkManager bileşenleri doğrudan önyükleme bilinmeyen olarak açıkça etiketlendi. Gelecekte, doğrudan önyükleme bilincine sahip bir WorkManager sürümü sunacağız. b/112665532
- Yeniden denemeye çalışılan ç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ışıyorken geri çekilme politikaları dikkate alınır.
Data
içindeki istisna mesajları, sınırın 10 KB olduğunu belirtecek şekilde düzeltildi.JobScheduler
işlenmesinin tamamlanmasında yaşanan gecikmeyi hesaba katmak içinConfiguration.setMaxSchedulerLimit(int)
maksimum değerini 50'ye düşürdük. 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 potansiyel bir SQL sorgusu düzeltildi.
- Yürütülmesi tamamlanan çalışmalar 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
'teki birConcurrentModificationException
düzeltildi. b/112272753Data.getBooleanArray(String)
veData.getIntArray(String)
işlevlerinin dönüş türü ek açıklamaları@NonNull
yerine@Nullable
olarak değiştirildi. b/112275229
API Değişiklikleri
Worker
artık yeni bir sınıf olanNonBlockingWorker
'u 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
- İşi planlarken veritabanı kilidini önleme. b/111801342
- Uyku modundayken
PeriodicWork
'ün planlandığı gibi çalışmamasına neden olan hata düzeltildi. 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
'ü yalnızca buna ihtiyacı olanWorkRequest
'ler olduğunda etkinleştirin. b/111765853
Sürüm 1.0.0-alpha05
24 Temmuz 2018
API Değişiklikleri
WorkManager.getInstance()
,@Nullable
yerine@NonNull
ile ek açıklamaya sahip. 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()
özelliğinin 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şaretledik.Constraints
kurucusu,Data.toByteArray()
veData.fromByteArray(byte[])
bu kapsamdadır. 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 durum 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
- Bazı olası yarış koşulları ve zamanlama sorunları düzeltildi.
- 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
Zararlı Değişiklikler
WorkManager.getInstance()
artık@Nullable
yerine@NonNull
ile ek açıklamaya sahip.Data.getString()
imzasının artık varsayılan değer almaması için imza değiştirildi (örtülü olaraknull
).- Yalnızca şirket içi kullanım için gereken bazı yöntemleri
@hide
olarak işaretledik.Constraints
kurucusu,Data.toByteArray()
veData.fromByteArray(byte[])
bu kapsamdadır.
Sürüm 1.0.0-alpha04
26 Haziran 2018
Hata Düzeltmeleri
AlarmManager
tabanlı uygulama kullanılırkenPeriodicWorkRequest
'ler artık doğru şekilde yeniden 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ütme 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 yıkıcı veritabanı 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ıldığında 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()
'un senkronize 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 durak istendiyseWorker.isStopped()
true
değerini döndürür. Çalışma açıkça iptal edildiğindeWorker.isCancelled()
,true
değerini döndürür. b/79632247- API 28'de JobParameters#getNetwork() için destek eklendi. Bu,
Worker.getNetwork()
üzerinden yayınlanır. JobScheduler
veyaAlarmManager
'ye kaç iş gönderilebileceğini zorunlu kılmak içinConfiguration.Builder.setMaxSchedulerLimit(int maxSchedulerLimit)
eklendi. Bu sayedeWorkManager
, mevcut tümJobScheduler
slotlarınızı alamaz.WorkManager
için güvenli birJobScheduler
iş kimliği aralığı tanımlamaya yardımcı olanConfiguration.setJobSchedulerJobIdRange(int minJobSchedulerId, int maxJobSchedulerId)
eklendi. b/79996760Worker.getRunAttemptCount()
, belirli birWorker
için geçerli çalıştırma sayısını döndürür. b/79716516WorkManager.enqueueUniquePeriodicWork(String uniqueWorkName, ExistingPeriodicWorkPolicy existingPeriodicWorkPolicy, PeriodicWorkRequest periodicWork)
, benzersizPeriodicWorkRequest
'leri sıraya almanıza olanak tanır. b/79600647WorkManager.cancelAllWork()
, tümWorker
'leri iptal eder.WorkManager
'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()
tarihindeNullPointerException
sorunu 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 ileti dizisine taşındı.AlarmManager
uygulaması, bekleyen tüm işler tamamlandığında artık doğru şekilde temizleniyor.- İngilizce olmayan yerel ayarları etkileyen temizleme SQL sorguları düzeltildi. b/80065360
Data
'tefloat
için destek eklendi. b/79443878Data.Builder.putAll()
artıkBuilder
örneğini döndürüyor. b/79699162- Dokümanda daha fazla javadoc ve düzeltme. 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,Worker
ile ilişkili birSet
etiket döndürür.- Süre ve
TimeUnit
kombinasyonu alan API'ler içinjavax.time.Duration
aşırı yüklemeleri eklendi. Bu,@RequiresApi(26)
tarafından korunur. WorkManager
uzantısı,androidx.work.ktx
paketindenandroidx.work
paketine taşındı. Eski uzantılara verilen destek sonlandırılmıştır ve bu uzantılar 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
.