WorkManager
| Son Güncelleme | Kararlı sürüm | Sürüm Adayı | Beta Sürümü | Alfa sürümü |
|---|---|---|---|---|
| 24 Eylül 2025 | 2.10.5 | - | 2.11.0-beta01 | - |
Bağımlılıkları bildirme
WorkManager'a bağımlılık eklemek için projenize Google Maven deposunu eklemeniz gerekir:
Uygulamanız veya modülünüz için build.gradle dosyasına ihtiyacınız olan yapıtların bağımlılıklarını ekleyin:
Eski
dependencies { def work_version = "2.10.5" // (Java only) implementation "androidx.work:work-runtime:$work_version" // Kotlin + coroutines implementation "androidx.work:work-runtime-ktx:$work_version" // optional - RxJava2 support implementation "androidx.work:work-rxjava2:$work_version" // optional - GCMNetworkManager support implementation "androidx.work:work-gcm:$work_version" // optional - Test helpers androidTestImplementation "androidx.work:work-testing:$work_version" // optional - Multiprocess support implementation "androidx.work:work-multiprocess:$work_version" }
Kotlin
dependencies { val work_version = "2.10.5" // (Java only) implementation("androidx.work:work-runtime:$work_version") // Kotlin + coroutines implementation("androidx.work:work-runtime-ktx:$work_version") // optional - RxJava2 support implementation("androidx.work:work-rxjava2:$work_version") // optional - GCMNetworkManager support implementation("androidx.work:work-gcm:$work_version") // optional - Test helpers androidTestImplementation("androidx.work:work-testing:$work_version") // optional - Multiprocess support implementation("androidx.work:work-multiprocess:$work_version") }
Kotlin uzantılarını kullanma hakkında bilgi edinmek için ktx belgelerine bakın.
Bağımlılıklar hakkında daha fazla bilgi için Derleme Bağımlılıkları Ekleme başlıklı makaleyi inceleyin.
Geri bildirim
Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmeye yönelik fikirleriniz varsa lütfen bize bildirin. Yeni bir sorun oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.
Daha fazla bilgi için Sorun İzleyici belgelerini inceleyin.
Sürüm 2.11
Sürüm 2.11.0-beta01
24 Eylül 2025
androidx.work:work-*:2.11.0-beta01 iptal edilir. 2.11.0-beta01 sürümü bu commit'leri içerir.
API Değişiklikleri
stopRunningWorkWithReasonöğesiniWorkManagerTestDriveralanına ekleyin. (Ie53b2, b/439955564)
Hata Düzeltmeleri
- Bekleyen komutlar olduğunda ön plan hizmetinin durdurulması sorunu düzeltildi (Iae822, b/432069314)
- Uzak coroutine çalışanının uzak hizmetin bağlantısını kaldırmamasının düzeltilmesi (I842f2, b/247113322)
Sürüm 2.11.0-alpha01
27 Ağustos 2025
androidx.work:work-*:2.11.0-alpha01 iptal edilir. 2.11.0-alpha01 sürümü bu commit'leri içerir.
API Değişiklikleri
- minSdk, API 21'den API 23'e güncellendi (Ibdfca, b/380448311, b/435705964, b/435705223)
- WorkManager'ın Configuration oluşturucusuna, RemoteWorkManager oturumunun son kullanımından itibaren ne kadar süre boyunca etkin kalacağını yapılandırmayı sağlayan
setRemoteSessionTimeoutMillisAPI'si eklendi. (Ib23c8) - Çalışma sistem tarafından kesintiye uğradığında geri çekilme uygulamak için
WorkRequest.Builderbölümüne deneysel bir API ekleyin. (Ie2dc7, b/335513480) - Özel
WorkerFactoryuygulamalarını (If6bff, b/389154854) desteklemek için oluşturulandan farklı bir çalışan sınıfınıTestListenableWorkerBuilder'ya iletmek üzere test API'si ekleyin.
Hata Düzeltmeleri
- Gereksiz IPC'leri önlemek için
SharedNetworkCallbackcihazında ağ özelliklerini önbelleğe alın (Ie4027, b/427115602) - İlk öğeden sonraki iş öğelerinin mevcut ağ özelliklerini alamadığı ve bunun yerine zaman aşımından sonra
ConstraintsNotMetile karşılaştığı ağ kısıtlaması değerlendirmesiyle ilgili sorun düzeltildi (Ib6a66, b/427115602).
Sürüm 2.10
Sürüm 2.10.5
24 Eylül 2025
androidx.work:work-*:2.10.5 iptal edilir. 2.10.5 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Bekleyen komutlar olduğunda ön plan hizmetinin durdurulması sorunu düzeltildi (Iae822, b/432069314)
Sürüm 2.10.4
10 Eylül 2025
androidx.work:work-*:2.10.4 iptal edilir. 2.10.4 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
RemoteCoroutineWorker'nın uzak hizmetin bağlantısını kaldırmamasıyla ilgili sorunu düzeltme (I842f2, b/247113322)
Sürüm 2.10.3
30 Temmuz 2025
androidx.work:work-*:2.10.3 iptal edilir. 2.10.3 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Önceki bir çalışanla aynı ağ kısıtlamalarına sahip çalışanların kısıtlamalarının karşılanmadığını bildirmesine neden olan sorun düzeltildi. (b/427115602).
Sürüm 2.10.2
18 Haziran 2025
androidx.work:work-*:2.10.2 iptal edilir. 2.10.2 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Ağ istekleri ve varsayılan özelliklerle çalışanlar kalıcı hale getirilirken, kaldırılan özelliklerin yeniden eklenmesine ve ağ kısıtlamaları olan çalışanların hatalı davranışına neden olan sorun düzeltildi. (b/409716532)
- Ağ ve özellikler kullanılabilir olsa da kısıtlamalar karşılanmadığı için ağ kısıtlamaları olan çalışanların zamanında yürütülmemesine neden olan hata düzeltildi. (b/423403088)
Sürüm 2.10.1
23 Nisan 2025
androidx.work:work-*:2.10.1 iptal edilir. 2.10.1 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Kısıtlama izleme için kullanılan bir
NetworkCallback'ninWorkManagertarafından kaydedilmesiyleTooManyRequestsException'nın atılma olasılığını azaltın. (b/231499040, b309d5).
Sürüm 2.10.0
30 Ekim 2024
androidx.work:work-*:2.10.0 iptal edilir. 2.10.0 sürümü bu commit'leri içerir.
2.9.1 sürümünden beri yapılan önemli değişiklikler
WorkManagerkaynaklı işlere izleme etiketleri eklendi. Bu sayede, yürütülen Worker'ın adını içereceğinden "adb shell dumpsys jobscheduler" komutunun anlaşılması çok daha kolay hale geldi.WorkManager'nın önemli alanlarına da iz bölümleri eklenir.CoroutineWorkeröğesinin yürütüldüğü dağıtıcıyı kontrol etmek içinConfiguration.workerCoroutineContexteklendi.- Geliştiriciler,
NetworkRequestyöntemiyle bir çalışan içinConstraints.setRequiredNetworkRequestkısıtlamasını belirtebilir. Bu sayede, çalışanın hangi ağda çalışması gerektiği konusunda daha ayrıntılı kontrol sahibi olabilirsiniz. WorkManager2.10.0 sürümü artık SDK 35 ile derleniyor ve SDK 35 uyumluluğu için çeşitli değişiklikler içeriyor.
Sürüm 2.10.0-rc01
24 Ekim 2024
androidx.work:work-*:2.10.0-rc01 iptal edilir. 2.10.0-rc01 sürümü bu commit'leri içerir.
Sürüm 2.10.0-beta01
2 Ekim 2024
androidx.work:work-*:2.10.0-beta01 iptal edilir. 2.10.0-beta01 sürümü bu commit'leri içerir.
Sürüm 2.10.0-alpha04
18 Eylül 2024
androidx.work:work-*:2.10.0-alpha04 iptal edilir. 2.10.0-alpha04 sürümü bu commit'leri içerir.
API Değişiklikleri
- Ön plan hizmeti türüne göre yürütme zaman aşımı nedeniyle ön plan çalışanının durdurulduğu zaman için durdurma nedenini
STOP_REASON_FOREGROUND_SERVICE_TIMEOUTekleyin. (Ibd0af)
Sürüm 2.10.0-alpha03
4 Eylül 2024
androidx.work:work-*:2.10.0-alpha03 iptal edilir. 2.10.0-alpha03 sürümü şu commit'leri içerir.
Yeni Özellikler
WorkManagerkaynaklı işlere izleme etiketleri eklendi. Bu sayede, yürütülen Worker'ın adını içereceğinden "adb shell dumpsys jobscheduler" komutunun anlaşılması çok daha kolay hale geldi.WorkManager'nın önemli alanlarına da iz bölümleri eklenir.
API Değişiklikleri
- WorkManager 2.10.0 artık SDK 35 ile derleniyor.
WorkManager,stopSelf()işlevini çağırmadığında "kısa hizmet" ve "veri senkronizasyonu" türündeki ön plan çalışanlarının zaman aşımına uğraması ve ANR'ye neden olması sorunu düzeltildi. Bu düzeltme yalnızca ön plan hizmeti türlerinin kullanıma sunulduğu API 34 ve 35'e sahip cihazlar için geçerlidir. (ca06b2, b/364508145)WorkerParameters,WorkerFactorykullanılırkenWorkeröğesinin bağlandığı uzak işlemi değiştirmeyi mümkün kılan yeni API'ler. (Ibdc8a, Ie8a90, I7373f)
Hata Düzeltmeleri
- Çalışmanın ön plan türünde, iptal edilen Android 14 ön koşul izinleri varken uzun süredir çalışan bir çalışanı (ör. ön plan çalışanı) yeniden başlatmaya çalışmaktan kaynaklanan kilitlenmeyi düzeltir.
WorkManager(b/333957914) - AGP 7.3 veya sonraki sürümleriyle (ör. R8 sürümü 3.3) R8 kullanılırken ve AGP 8.1 veya sonraki sürümleriyle (ör. D8 sürümü 8.1) tüm derlemeler kullanılırken yeni platform API'lerine erişimin manuel olarak ana hatlarının oluşturulması, API modelleme aracılığıyla otomatik olarak yapıldığından kaldırıldı. AGP kullanmayan müşterilerin D8'in 8.1 veya sonraki bir sürümüne güncellemeleri önerilir. Daha fazla bilgi için bu makaleye göz atın. (Ia60e0, b/345472586)
Sürüm 2.10.0-alpha02
17 Nisan 2024
androidx.work:work-*:2.10.0-alpha02 iptal edilir. 2.10.0-alpha02 sürümü bu commit'leri içerir.
API Değişiklikleri
WorkManager'de yapılandırılabilir bir@RestrictToTraceraracılığıyla izleme aralıkları yayınlama özelliği eklendi. (I17d7f, b/260214125)CoroutineWorkeröğesinin yürütüldüğü dağıtıcıyı kontrol etmek içinConfiguration.workerCoroutineContexteklendi.WorkManageriçindeDispatchers.Defaultkullanımını tamamen önlemeye yardımcı olur. (Icd1b7)- Workers için özel istisna işleyiciler ekleyin (Ib1b74, b/261190695)
OneTimeWorkRequest.BuildervePeriodicWorkRequest.BuilderartıkClassyerineKClassile oluşturulabilir:val request = OneTimeWorkRequest.Builder(Worker::class).setConstraints(...).build()(Ib55f6)WorkManagersınıfı Kotlin'e taşındı.LiveData,ListenableFutureveyaFlowdöndüren yöntemler artık doğru nullability bilgileri sağlıyor. Bu kodda boş değer kabul edilebilirliğiyle ilgili varsayımlar yanlışsa istemcilerin kaynak kodunda değişiklik yapılması gerekebilir. (If6757)
Sürüm 2.10.0-alpha01
24 Ocak 2024
androidx.work:work-*:2.10.0-alpha01 iptal edilir. 2.10.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
- Geliştiriciler,
NetworkRequestyöntemiyle bir çalışan içinConstraints.setRequiredNetworkRequestkısıtlamasını belirtebilir. Bu sayede, çalışanın hangi ağda çalışması gerektiği konusunda daha ayrıntılı kontrol sahibi olabilirsiniz.
API Değişiklikleri
NetworkRequestdeğerini kısıtlama olarak belirtme özelliği eklenmiştir. (Id98a1, b/280634452)
Sürüm 2.9
Sürüm 2.9.1
7 Ağustos 2024
androidx.work:work-*:2.9.1 iptal edilir. 2.9.1 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
WorkManagerÇalışmanın ön plan türünde iptal edilmiş Android 14 ön koşul izinleri varken uzun süredir çalışan bir çalışanı (ör. ön plan çalışanı) yeniden başlatma girişimi nedeniyle oluşan kilitlenme düzeltildi. (b/333957914)
Sürüm 2.9.0
29 Kasım 2023
androidx.work:work-*:2.9.0 iptal edilir. 2.9.0 sürümü şu commit'leri içerir.
2.8.0 sürümünden beri yapılan önemli değişiklikler
Flowüzerinden gözlemlenebilirlik.LiveDatayerine, Worker'ın ilerleme durumu artık Flow'unWorkManager.getWorkInfosFlowve benzeri yöntemleriyle gözlemlenebilir.WorkManagerartık bir çalışanın daha önce neden durdurulduğuyla ilgili ipucu veriyor.getStopReason()yöntemiyle doğrudan bir çalışandan veyaWorkInfoüzerindengetStopReason()yöntemiyle sorgulanabilir.setNextScheduleTimeOverridearacılığıyla periyodik çalışanların hassas şekilde planlanması. Bu sayede, bir sonraki periyodik çalışma programı dinamik olarak hesaplanabilir. Bu da uyarlanabilir yenileme süreleri, özel yeniden deneme davranışı veya haber feed'i çalışanının her sabah kullanıcı uyanmadan önce kayma olmadan çalıştırılması gibi gelişmiş özelliklerin uygulanmasına olanak tanır. Bir sonraki çalışan planlanırken mevcut çalışanın iptal edilmesini önlemek için bu tekniklerle birlikteExistingPeriodicWorkPolicy.UPDATEkullanılmalıdır.- WorkManager'ın, üretimle eşleşen iş parçacığı oluşturma ile test edilmesi.
ExecutorsMode.PRESERVE_EXECUTORS,Configurationiçinde ayarlanan yürütücüleri korumak ve gerçek ana iş parçacığını kullanmak içininitializeTestWorkManageriçinde kullanılabilir. CoroutineWorkergibi Coroutines API'leri, ek yapay nesne work-runtime-ktx'ten ana yapay nesne work-runtime'a taşındı. work-runtime-ktx artık boş.
API Değişiklikleri
stopReason,WorkInfoadlı CSS'ye eklendi. Bu işlev, çalışan çalıştıktan sonrastopReasonkullanılabilir hâle getirir. Bir çalışan durdurulduktan sonra uygulamanın kendisi çok hızlı bir şekilde kapatılabileceğinden, bu durum raporlamadastopReasonfaydalı olabilir. (I21386)Clock'nın yapılandırma üzerinden ayarlanmasına ve Worker testlerinin yürütme sırasını belirlemek için kullanılmasına izin verin. (Ic586e)ListenableWorker'ye, çalışanın neden durdurulduğuyla ilgili ipucu verengetStopReason()yöntemi eklendi. (I07060)- Closeguard'ın sızdırılan kaynaklarla ilgili uyarısını önlemek için
WorkManagerTestInitHelper#closeWorkDatabase()eklendi. (Ia8d49) WorkInfo'nın oluşturucusu artık herkese açık ve bu, testlerde yararlı olabilir. (Ia00b6, b/209145335)work-runtime-ktxartık boş veCoroutineWorkerile Kotlin'e özgü diğer yardımcı programlar artık ana work-runtime yapısında kullanılabilir. (I71a9a)- Periyodik çalışma programlarının doğru şekilde ayarlanmasına olanak tanıyan
setNextScheduleTimeOverrideyöntemi eklendi (I3b4da). - Planlanmış çalışma süresi bilgilerini almak için
getNextScheduleTimeMillis,WorkInfo'ye eklendi. (I797e4) - Başlangıç gecikmesi ve periyodiklik bilgileri
WorkInfo'ya eklenir. (I52f2f) getWorkInfosByTagFlow,getWorkInfoByIdFlow,getWorkInfosForUniqueWorkFlow,getWorkInfosFlowyöntemleriyle akışlar üzerinden işçileri gözlemleme yöntemi eklendi (If122a)Constraints'in oluşturucularına ve özelliklerine eksik@RequiresApi(...)ek açıklamaları eklendi. Bu işlevler artıkWorkManager'nin ilk sürümlerinden beri var olanConstraints.Builder'daki ayarlayıcılarda bulunan ilgili ek açıklamalarla uyumlu. (I6d7d2)WorkManager, yüksek yük altında içerik güncellemelerinin kaçırılmasını önlemek içinJobScheduler'de içerik URI çalışanlarına ayrılmış yuvalar sunmak üzere artık ayrı bir sınıra sahip. Sınır,Configuration.Builder.setContentUriTriggerWorkersLimitüzerinden yapılandırılabilir. (Ic128f)WorkInfoiçin kısıtlamalar eklenir. (I162c0)
Sürüm 2.9.0-rc01
18 Ekim 2023
androidx.work:work-*:2.9.0-rc01 iptal edilir. 2.9.0-rc01 sürümü şu commit'leri içerir.
- Son beta sürümünden bu yana değişiklik yok
Sürüm 2.9.0-beta01
6 Eylül 2023
androidx.work:work-*:2.9.0-beta01 iptal edilir. 2.9.0-beta01 sürümü şu commit'leri içerir.
API Değişiklikleri
WorkInfo.stopReasonveListenableWorker.stopReasontarafından döndürülen durdurma nedenleri için sabit değerler eklendi (I0cc00).
Sürüm 2.9.0-alpha02
26 Temmuz 2023
androidx.work:work-*:2.9.0-alpha02 iptal edilir. 2.9.0-alpha02 sürümü şu commit'leri içerir.
Yeni Özellikler
WorkManagerartık bir çalışanın daha önce neden durdurulduğuyla ilgili ipucu veriyor.getStopReason()yöntemiyle doğrudan bir çalışandan veyaWorkInfoüzerindengetStopReason()yöntemiyle sorgulanabilir.
API Değişiklikleri
stopReason,WorkInfoadlı CSS'ye eklendi. İşçi çalıştıktan sonrastopReasonkullanılabilir hâle gelir. Bir çalışan durdurulduktan sonra uygulamanın kendisi çok hızlı bir şekilde kapatılabileceğinden, raporlamadastopReasonkullanışlı olabilir. (I21386)- Saat'in yapılandırma üzerinden ayarlanmasına ve Worker testlerinin yürütülme sırasını belirlemek için kullanılmasına izin verin. (Ic586e)
ListenableWorker'ye, çalışanın neden durdurulduğuyla ilgili ipucu verengetStopReason()yöntemi eklendi. (I07060)- Closeguard'ın sızdırılan kaynaklarla ilgili uyarısını önlemek için
WorkManagerTestInitHelper#closeWorkDatabase()eklendi. (Ia8d49)
Hata Düzeltmeleri
TestDriverkullanılarakoverrideNextScheduleTime'ı atlama özelliği eklendi ve test edilebilirlikle ilgili sorunlar düzeltildi. (Ic2905)
Sürüm 2.9.0-alpha01
7 Haziran 2023
androidx.work:work-*:2.9.0-alpha01 iptal edilir. 2.9.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
Flowüzerinden gözlemlenebilirlik.LiveDatayerine, Worker'ın ilerleme durumu artık Flow'unWorkManager.getWorkInfosFlowve benzeri yöntemleriyle gözlemlenebilir.setNextScheduleTimeOverridearacılığıyla periyodik çalışanların hassas şekilde planlanması. Bu sayede, bir sonraki periyodik çalışma programı dinamik olarak hesaplanabilir. Bu da uyarlanabilir yenileme süreleri, özel yeniden deneme davranışı veya haber feed'i çalışanının her sabah kullanıcı uyanmadan önce kayma olmadan çalıştırılması gibi gelişmiş özelliklerin uygulanmasına olanak tanır. Bir sonraki çalışan planlanırken mevcut çalışanın iptal edilmesini önlemek için bu tekniklerle birlikteExistingPeriodicWorkPolicy.UPDATEkullanılmalıdır.WorkManager, üretimle eşleşen ileti dizileriyle test yapıyor.ExecutorsMode.PRESERVE_EXECUTORS,Configurationiçinde ayarlanan yürütücüleri korumak ve gerçek ana iş parçacığını kullanmak için kullanılabilir.CoroutineWorkergibi Coroutines API'leri, ek yapay nesnework-runtime-ktx'den ana yapay nesnework-runtime'ye taşındı.work-runtime-ktxartık boş.
API Değişiklikleri
WorkInfooluşturucu artık herkese açık ve testlerde kullanılabilir. (Ia00b6, b/209145335)work-runtime-ktxartık boş veCoroutineWorkerile ilgili diğer Kotlin yardımcı programları artık anawork-runtimeyapısında kullanılabilir. (I71a9a)- Periyodik çalışma programlarının doğru şekilde ayarlanmasına olanak tanıyan
setNextScheduleTimeOverrideyöntemi eklendi (I3b4da). getEarliestRunTimeMillis,getNextScheduleTimeMillisolarak yeniden adlandırıldı. (I2bd7a)- Sonraki planlı çalıştırma zamanı bilgileri
WorkInfo'ya eklenir. (I797e4) - Başlangıç gecikmesi ve periyodiklik bilgileri
WorkInfo'ya eklenir. (I52f2f) getWorkInfosByTagFlow,getWorkInfoByIdFlow,getWorkInfosForUniqueWorkFlow,getWorkInfosFlowyöntemleriyle akışlar üzerinden işçileri gözlemleme yöntemi eklendi (If122a)- Kısıtlamaların oluşturucularına ve özelliklerine eksik
@RequiresApi(...)ek açıklamaları eklendi. Bu işlevler artıkWorkManager'nin ilk sürümlerinden beri var olanConstraints.Builder'daki ayarlayıcılarda bulunan ilgili ek açıklamalarla uyumlu. (I6d7d2) WorkManager, yüksek yük altında içerik güncellemelerinin kaçırılmasını önlemek içinJobScheduler'de içerik URI çalışanlarına ayrılmış yuvalar sunmak üzere artık ayrı bir sınıra sahip. Sınır,Configuration.Builder.setContentUriTriggerWorkersLimitüzerinden yapılandırılabilir. (Ic128f)WorkInfoiçin kısıtlamalar eklenir. (I162c0)
Sürüm 2.8
Sürüm 2.8.1
22 Mart 2023
androidx.work:work-*:2.8.1 iptal edilir. 2.8.1 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Daha önce iki eşzamanlı yayını doğru şekilde işlemeyen
RescheduleReceiveriçinde ANR düzeltildi. (b/236906724)
Sürüm 2.8.0
8 Şubat 2023
androidx.work:work-*:2.8.0 iptal edilir. 2.8.0 sürümü şu commit'leri içerir.
2.7.0 sürümünden beri yapılan önemli değişiklikler
Yeni Özellikler
WorkRequestsöğesini orijinal kuyruğa alma süresini, zincirlemeyi vb. koruyarak kesintiye yol açmayacak şekilde güncelleme özelliği eklendi. Bu özellik hakkında daha fazla bilgi edinmek için ayrıntılı blog yayınını veWorkManager.updateWorkileExistingPeriodicWorkPolicy.UPDATEiçin Javadoc'ları inceleyin.
API Değişiklikleri
WorkManager.updateWork, orijinal kuyruğa alma zamanını ve zincirlemeyi koruyarak çalışmayı güncellemek için eklendi.(I9a248, b/219446409)ExistingPeriodicWorkPolicy.UPDATEeklendi. Bu politika, düzenli olarak yayınlanan bir çalışmanın adını güncellemeye olanak tanır. MevcutREPLACEişlevine benzer ancak daha az müdahalecidir: Şu anda çalışıyorsa bir çalışanı iptal etmez ve sıraya alma süresini korur. İlk gecikme ve dönem, güncelleme süresinden değil, orijinal sıraya alma süresinden hesaplanır.REPLACEveUPDATEarasındaki karışıklığı azaltmak içinREPLACEdesteği sonlandırıldı.REPLACEöğesinin önceki anlamlarını korumak istiyorsanızREPLACEile aynı olan yeni eklenenCANCEL_AND_REENQUEUEöğesini kullanabilirsiniz. (I985ed, b/219446409)Consumer<Throwable>aracılığıyla planlama istisnalarını yakalama özelliği eklendi (setSchedulingExceptionHandler)- WorkManager'ı başlatmaya çalışırken sorun olup olmadığını belirlemek için setInitializationExceptionHandler aracılığıyla
Consumer<Throwable>sağlama özelliği eklendi. OneTimeWorkRequestvePeriodicWorkRequestiçin satır içi yardımcılarandroidx.work:work-runtime-ktx'danandroidx.work:work-runtime'a taşındı (I0010f, b/209145335)- Doğrudan
WorkQueryoluşturmak için yardımcı yöntemlerWorkQuery.fromIds,WorkQuery.fromStates,WorkQuery.fromUniqueWorkNames,WorkQuery.fromTagseklendi. (b/199919736) (If48f2, b/199919736) WorkerlistesinegetForegroundInfoeklendi. (Ic1ead)RxWorkerhem RxJava 2 hem de RxJava 3 için artıksetForegrounddöndürenCompletableişlevi var. Bu işlev,ListenableFuturedöndürensetForegroundInfoAsyncişlevi yerine kullanılabilir.RxWorkerhem RxJava 2 hem de RxJava 3 içingetForegroundInfo,ListenableFuturedöndürengetForegroundInfoAsyncyerine kullanılabilecekSingledöndürüyor. (b/203851459)- Kısıtlamalar artık
Constraints.Builderkullanmak yerine doğrudan oluşturulabilir. Bu, Kotlin kullanıcıları için kolaylık sağlar. (Idc390, b/137568653) WorkManagerbaşlatılıp başlatılmadığını kontrol etme özelliği eklendi. Ayrıca, kitaplık geliştiricilerinWorkManagerile başlatılan yapılandırmayı alması için yeni birgetConfiguration()API'si eklendi. (I6eff3, b/212300336)
Hata Düzeltmeleri
- Aşırı istekli zamanlayıcı nedeniyle çalışanların yük altındayken hemen çalışmasını engelleyen sorun düzeltildi. (I9686b, b/248111307)
- SDK 33 ve sonraki sürümlerde
POST_NOTIFICATIONSizninin verilmesini gerektiren API'lere@RequiresPermissioneklendi. (Ie542e, b/238790278) suspendCancellableCoroutinekullanılırkenCoroutineScope'daki iptalleriListenableFuture'a aktarın.
Sürüm 2.8.0-rc01
7 Aralık 2022
androidx.work:work-*:2.8.0-rc01 iptal edilir. 2.8.0-rc01 sürümü şu commit'leri içerir.
Yeni Özellikler
- Bu sürümde yeni özellik yok. Bu güncelleme, temel olarak sürüm yükseltme işlemidir.
Sürüm 2.8.0-beta02
9 Kasım 2022
androidx.work:work-*:2.8.0-beta02 iptal edilir. 2.8.0-beta02 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Daha önce yeni nesil bilgilerini dikkate almayan
WorkInfoiçindekiequalsyöntemi düzeltildi. (4977cc)
Sürüm 2.8.0-beta01
5 Ekim 2022
androidx.work:work-*:2.8.0-beta01 iptal edilir. 2.8.0-beta01 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Aşırı istekli zamanlayıcı nedeniyle çalışanların yük altındayken hemen çalışmasını engelleyen sorun düzeltildi. (I9686b, b/248111307)
Sürüm 2.8.0-alpha04
7 Eylül 2022
androidx.work:work-*:2.8.0-alpha04 iptal edilir. 2.8.0-alpha04 sürümü şu commit'leri içerir.
API Değişiklikleri
WorkerInfo.getGeneration()veWorkerParameters.getGeneration()işçinin neslini döndüren işlevler eklendi. Bir çalışan,WorkManager.updateWorkveyaWorkManager.enqueueUniquePeriodicWorküzerindenExistingPeriodicWorkPolicy.UPDATEkullanılarak güncellendiyse birden fazla nesle sahip olur. Çalışan şu anda çalışıyorsa, çalışanın yürütülmesi sırasında bir güncelleme yapıldıysa bu yöntemin, şu anda çalışan çalışanınkinden daha yeni bir nesil döndürmesinin mümkün olduğunu unutmayın. (I665c5, b/219446409) (I128a9, b/219446409)InitializationExceptionHandlerbaşlatılırken sorun olup olmadığını belirlemek için kullanılabilecek bir İstisna İşleyici olanInitializationExceptionHandlereklendi.WorkManager(I061de)
Sürüm 2.8.0-alpha03
10 Ağustos 2022
androidx.work:work-*:2.8.0-alpha03 iptal edilir. 2.8.0-alpha03 sürümü şu commit'leri içerir.
Yeni Özellikler
- Orijinal kuyruğa alma süresini, zincirlemeyi vb. koruyarak
WorkRequestsöğesini kesintiye yol açmadan güncelleme özelliği eklendi. Daha fazla bilgi içinWorkManager.updateWorkveExistingPeriodicWorkPolicy.UPDATEbaşlıklı makaleleri inceleyin.
API Değişiklikleri
WorkManager.updateWork, orijinal kuyruğa alma zamanını ve zincirlemeyi koruyarak çalışmayı güncellemek için eklendi.(I9a248, b/219446409)ExistingPeriodicWorkPolicy.UPDATEeklendi. Bu politika, periyodik bir çalışmanın adını güncellemeye olanak tanır. MevcutREPLACEişlevine benzer ancak daha az müdahalecidir: Şu anda çalışıyorsa bir çalışanı iptal etmez ve sıraya alma süresini korur. İlk gecikme ve dönem, güncelleme süresinden değil, orijinal sıraya alma süresinden hesaplanır.REPLACEveUPDATEarasındaki karışıklığı azaltmak içinREPLACEdesteği sonlandırıldı.REPLACEöğesinin önceki anlamlarını korumak istiyorsanızREPLACEile aynı olan yeni eklenenCANCEL_AND_REENQUEUEöğesini kullanabilirsiniz. (I985ed, b/219446409)SchedulingExceptionHandlertanımlayarak planlama istisnalarını yakalama özelliği ekleyin. (I033eb)OneTimeWorkRequestvePeriodicWorkRequestiçin satır içi yardımcılarandroidx.work:work-runtime-ktx'danandroidx.work:work-runtime'a taşındı (I0010f, b/209145335)
Hata Düzeltmeleri
- SDK 33 ve sonraki sürümlerde POST_NOTIFICATIONS izninin verilmesini gerektiren API'lere
@RequiresPermissioneklendi. (Ie542e, b/238790278)
Sürüm 2.8.0-alpha02
6 Nisan 2022
androidx.work:work-*:2.8.0-alpha02 iptal edilir. 2.8.0-alpha02 sürümü şu commit'leri içerir.
API Değişiklikleri
- Kısıtlamalar artık Builder kullanılarak değil doğrudan oluşturulabilir. Bu, Kotlin kullanıcıları için kolaylık sağlar. (Idc390, b/137568653)
WorkManagerbaşlatılıp başlatılmadığını kontrol etme özelliği eklendi. Ayrıca, kitaplık geliştiricilerinWorkManagerile başlatılan yapılandırmayı alması için yeni birgetConfiguration()API'si eklendi. (I6eff3, b/212300336)
Sürüm 2.8.0-alpha01
12 Ocak 2022
androidx.work:work-*:2.8.0-alpha01 iptal edilir. 2.8.0-alpha01 sürümü şu commit'leri içerir.
API Değişiklikleri
- WorkQuery'yi doğrudan oluşturmak için yardımcı yöntemler
WorkQuery.fromStates,WorkQuery.fromUniqueWorkNames,WorkQuery.fromTagseklendi. (If48f2, b/199919736) - Gelecekteki SDK'lar için deneysel BuildCompat yöntemleri ekler (Iafd82, b/207528937)
getForegroundInfoadlı kişiyiWorkerlistesine ekleyin. (Ic1ead)- Doğrudan kimliklerden WorkQuery oluşturmak için yardımcı yöntemler
WorkQuery.fromIdseklendi. (Ie5bdf, b/199919736) - RxWorker artık
setForegrounddöndürenCompletableişlevine sahip. Bu işlev,ListenableFuturedöndürensetForegroundInfoAsyncyerine kullanılabilir. (I85156) - RxJava 2 için RxWorker artık
getForegroundInfodöndürenSingleiçeriyor. Bu,ListenableFuturedöndürengetForegroundInfoAsyncyerine kullanılabilir. (I21c91, b/203851459) - RxJava 3 için RxWorker'da artık
getForegroundInfodöndürenSinglevar. Bu,ListenableFuturedöndürengetForegroundInfoAsyncyerine kullanılabilir. (I1ca8a) - RxWorker artık
setForegrounddöndürenCompletableişlevine sahip. Bu işlev,ListenableFuturedöndürensetForegroundInfoAsyncyerine kullanılabilir. (I992a3, b/203851459)
Hata Düzeltmeleri
suspendCancellableCoroutinekullanılırkenCoroutineScope'daki iptalleriListenableFuture'a aktarın. (I77e63)
Sürüm 2.7
Sürüm 2.7.1
17 Kasım 2021
androidx.work:work-*:2.7.1 iptal edilir. 2.7.1 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
suspendCancellableCoroutinekullanılırkenCoroutineScopeiçindeki iptallerListenableFuture'ye aktarılır. (I77e63)- Gecikmiş iş istekleri hızlandırılmış olarak işaretlendiğinde hemen bir istisna oluşturulur. bef1762
Sürüm 2.7.0
13 Ekim 2021
androidx.work:work-*:2.7.0 iptal edilir. 2.7.0 sürümü şu commit'leri içerir.
2.6.0 sürümünden beri yapılan önemli değişiklikler
WorkManager, Android 12'deki ön plan hizmeti kısıtlamalarına yardımcı olmak için yeni bir
WorkRequest.Builder.setExpedited(...)API sunar.setExpedited(...)kullanılırken WorkManager, Android 12'den itibaren JobScheduler'da hızlandırılmış işlere devrederken bir ön plan hizmetine devrederek Android'in önceki sürümlerinde geriye dönük uyumluluk sağlar.
Sürüm 2.7.0-rc01
29 Eylül 2021
androidx.work:work-*:2.7.0-rc01 iptal edilir. 2.7.0-rc01 sürümü şu commit'leri içerir.
Bu sürüm, androidx.work:work-*:2.7.0-beta01 ile aynıdır.
Sürüm 2.7.0-beta01
1 Eylül 2021
androidx.work:work-*:2.7.0-beta01 iptal edilir. 2.7.0-beta01 sürümü şu commit'leri içerir.
Yeni Özellikler
- WorkManager başlatılırken çok işlemli SQLite çekişmesini azaltır.
API Değişiklikleri
- Android 12 (S) için temel platform API'leri kararlı olduğundan
@ExperimentalExpeditedWorkAPI'lerini kaldırın. (aosp/1792806)
Hata Düzeltmeleri
getForegroundInfoAsync()'yı uygulamayan hızlandırılmış çalışanlar için daha iyi bir hata mesajı sağlama. (aosp/1809376)
Sürüm 2.7.0-alpha05
21 Temmuz 2021
androidx.work:work-*:2.7.0-alpha05 iptal edilir. 2.7.0-alpha05 sürümü şu commit'leri içerir.
Bu sürü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 iptal edilir.
Bu sürüm, 2.6.0-beta01 sürümündeki değişiklikleri de içerir.
API Değişiklikleri
ListenableWorker.setForegroundAsync()artık kullanımdan kaldırılmıyor.- Mümkün olduğunda
WorkRequest.Builder.setExpedited(...)API'yi kullanmanızı öneririz. Geliştiriciler, uygulamanın ön plan hizmeti kısıtlamalarına tabi olmadığı durumları daha iyi desteklemek içinListenableWorker.setForegroundAsync()API'sini kullanabilir. - Uygulama ön plan hizmeti kısıtlamalarına tabi olduğunda
ListenableWorker.setForegroundAsync()çağrılırsa ForegroundServiceStartNotAllowedException hatası verilir.
Hata Düzeltmeleri
- Hızlandırılmış işler yeniden planlandığında hızlandırılmış olarak kalmaz. Bu işler normal işler haline gelir.
Sürüm 2.7.0-alpha03
21 Nisan 2021
�androidx.work:work-*:2.7.0-alpha03 iptal edilir. 2.7.0-alpha03 sürümü şu commit'leri içerir.
Yeni Özellikler
WorkManager
2.6.0-alpha02: Herhangi bir süreçte çalışabilen Worker'lar için destek ekler. (Iaf200)WorkManager
2.6.0-alpha02: Uzak bir işleme bağlanabilenRemoteListenableWorkeruygulaması olanRemoteCoroutineWorkereklendi. (I30578)
API Değişiklikleri
- WorkManager
2.6.0-alpha02:TEMPORARILY_UNMETEREDağ kısıtlaması için destek eklendi. (I08d5e) - WorkManager
2.6.0-alpha02:setProgressAsync()için çok işlemli çalışan desteği. (Ib6d08) - WorkManager
2.6.0-alpha02:Diğerandroidx.startup.Initializer'lerin bunları bağımlılık olarak kullanabilmesi içinWorkManagerInitializer'ı herkese açık hale getirin. (I5ab11)
Sürüm 2.7.0-alpha02
10 Mart 2021
androidx.work:work-*:2.7.0-alpha02 iptal edilir. 2.7.0-alpha02 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Android 12'yi hedeflerken kilitlenme sorununu düzeltmek için
PendingIntentdeğişkenliğini açıkça belirtin. (b/180884673)
Sürüm 2.7.0-alpha01
18 Şubat 2021
androidx.work:work-*:2.7.0-alpha01 iptal edilir. 2.7.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
WorkManager, Android 12'deki
WorkRequest.Builder.setExpedited(...)ön plan hizmeti kısıtlamalarını dikkate almak için yeni bir API sunar.Uygulamalar artık arka plandayken ön plan hizmeti başlatamaz. Bu nedenle, daha önce bir ön plan hizmetinin yaşam döngüsüne bağlı olan uzun süreli çalışmaları daha iyi desteklemek için uygulamalar
WorkRequestöğelerini hızlandırılmış olarak işaretleyebilir.Bu API, artık desteği sonlandırılan
setForegroundAsync(...)/setForeground(...)API'lerinin yerini almıştır.setExpedited(...)kullanılırken WorkManager, Android 12'den itibarenJobScheduleriçinde hızlandırılmış işlere devrederken ön plan hizmetlerine devrederek Android'in önceki sürümlerinde geriye dönük uyumluluk sağlar.
API Değişiklikleri
- Hızlandırılmış
WorkRequest'ler için destek ekleyin.
Sürüm 2.6.0
Sürüm 2.6.0
1 Eylül 2021
androidx.work:work-*:2.6.0 iptal edilir. 2.6.0 sürümü şu commit'leri içerir.
2.5.0 sürümünden beri yapılan önemli değişiklikler
WorkManager artık WorkManager'ı başlatmak için
androidx.startupkullanıyor. Geçmişte WorkManager'ı başlatmak içintools:node="remove"ContentProviderkullanmışsanız bunun yerine aşağıdakileri yapmanız gerekir.<provider android:name="androidx.startup.InitializationProvider" android:authorities=\"${applicationId}.androidx-startup" android:exported="false" tools:node=\"merge"> <!-- If you are using androidx.startup to initialize other components --> <meta-data android:name="androidx.work.WorkManagerInitializer" android:value="androidx.startup" tools:node="remove" /> </provider><!-- If you want to disable android.startup completely. --> <provider android:name="androidx.startup.InitializationProvider" android:authorities="${applicationId}.androidx-startup" tools:node="remove" />Herhangi bir süreçte çalışabilen Worker'lar için destek eklendi. (Iaf200)
Uzak bir işleme bağlanabilen RemoteListenableWorker uygulaması olan
RemoteCoroutineWorkereklendi. (I30578)
Sürüm 2.6.0-rc01
4 Ağustos 2021
androidx.work:work-*:2.6.0-rc01 iptal edilir. 2.6.0-rc01 sürümü şu commit'leri içerir.
Bu sürüm, androidx.work:work-*:2.6.0-beta02 ile aynıdır.
Sürüm 2.6.0-beta02
21 Temmuz 2021
androidx.work:work-*:2.6.0-beta02 iptal edilir. 2.6.0-beta02 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
RemoteWorkManagerartıkRemoteWorkManagerServiceile doğru şekilde bağlantısı kaldırılıyor. Bu sayedeRemoteWorkManagerService, temizleme işlemini doğru şekilde yapabiliyor. aosp/1730694RemoteListenableWorkerartıkRemoteWorkerServiceile doğru şekilde bağlantıyı kaldırıyor. Bu sayedeRemoteWorkerService, temizleme işlemini doğru şekilde yapabiliyor. aosp/1743817ForceStopRunnableartık yalnızca birincil uygulama sürecinde çalışır. Bu bir optimizasyondur ve birden fazla işlem kullanan uygulamalarda kaynak çekişmesini önler. aosp/1749180, aosp/1761729
Sürüm 2.6.0-beta01
2 Haziran 2021
androidx.work:work-*:2.6.0-beta01 iptal edilir. 2.6.0-beta01 sürümü şu commit'leri içerir.
Bu sürümde, belgelerle ilgili bazı küçük iyileştirmeler yapılmıştır. Bu sürüm, 2.6.0-alpha02 sürümüyle büyük ölçüde aynıdır.
Sürüm 2.6.0-alpha02
21 Nisan 2021
androidx.work:work-*:2.6.0-alpha02 iptal edilir. 2.6.0-alpha02 sürümü şu commit'leri içerir.
Yeni Özellikler
Herhangi bir süreçte çalışabilen Worker'lar için destek eklenir. (Iaf200)
Uzak bir işleme bağlanabilen
RemoteListenableWorkeruygulaması olanRemoteCoroutineWorkereklendi. (I30578)
API Değişiklikleri
TEMPORARILY_UNMETEREDağ kısıtlaması için destek eklendi. (I08d5e)setProgressAsync()için çoklu işlem çalışan desteği. (Ib6d08)- Diğer
androidx.startup.Initializer'lerin bunları bağımlılık olarak kullanabilmesi içinWorkManagerInitializer'yı herkese açık hale getirin. (I5ab11)
Sürüm 2.6.0-alpha01
24 Mart 2021
androidx.work:work-*:2.6.0-alpha01 iptal edilir. 2.6.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
WorkManagerartık WorkManager'ı başlatmak içinandroidx.startupkullanıyor. Bu işlem daha önceandroidx.work.impl.WorkManagerInitializertarafından yapılıyordu. (aosp/1608813)Geçmişte
tools:node="remove"işlem yaşam döngüsünü başlatmak içinContentProviderkullanmışsanız bunun yerine aşağıdakileri yapmanız gerekir.<provider android:name="androidx.startup.InitializationProvider" android:authorities=\"${applicationId}.androidx-startup" android:exported="false" tools:node=\"merge"> <!-- If you are using androidx.startup to initialize other components --> <meta-data android:name="androidx.work.impl.WorkManagerInitializer" android:value="androidx.startup" tools:node="remove" /> </provider>(veya)
<!-- If you want to disable android.startup completely. --> <provider android:name="androidx.startup.InitializationProvider" android:authorities="${applicationId}.androidx-startup" tools:node="remove"> </provider>
API Değişiklikleri
- ListenableWorker'ın
outputDatadeğerini döndüren birResult.getOutputData()API'si ekleyin. (Ie51e3)
Hata Düzeltmeleri
AlarmManagerAPI'leri kullanılırkenSecurityExceptionistisnasına neden olan bir OEM hatası için geçici çözüm eklendi. (aosp/1587518)
Sürüm 2.5.0
Sürüm 2.5.0
27 Ocak 2021
androidx.work:work-*:2.5.0 iptal edilir. 2.5.0 sürümü şu commit'leri içerir.
2.4.0 sürümünden beri yapılan önemli değişiklikler
- Birden fazla işlem kullanan uygulamalar için yeni bir
:work:work-multiprocessyapısı. Bu, iş isteği planlamasını tek bir süreçte birleştirerek performans artışı sağlar.work-multiprocessuygulamasını kullanmak için şunlara bağımlılık tanımlayın:implementation "androidx.work:work-multiprocess:2.5.0"- Configuration.Builder.setDefaultProcessName(String) kullanarak birincil işlem belirleyin.
work-multiprocesskullanırkenWorkRequestcihazlarınızı yönetmek için RemoteWorkManager'ı da kullanmak istiyorsunuz. RemoteWorkManager her zaman belirlenen işleme ulaşır. İşlem içi zamanlayıcı da belirlenen işlemde çalışır.
- Bazen
ActivityManager, bir işi başlatmak içinJobServiceörneğini oluşturamaz. Bu durum, temel işin bir platform hatası nedeniyle sessizce bırakılmasına neden olur.WorkManagerartık işleri uzlaştırarak birApplicationbaşlatıldığında herWorkRequestiçin yedekleme işleri olmasını sağlıyor. Bu, iş yürütme güvenilirliğini büyük ölçüde artırır. (b/172475041, aosp/1489577) WorkManager,WorkRequesttamamlandıktan sonraWorkRequestizlenen arabellek süresini azaltarak veritabanı büyümesini sınırlar. Süre daha önce7gündü. Bu süre,1gün + keepResultsForAtLeast süresi olarak kısaltıldı. (aosp/1419708)TestListenableWorkerBuilder, artık testi kolaylaştırmak içinListenableWorker'yi genişleten somutlaştırılmış sınıfı destekliyor. (aosp/1443299, b/169787349)- WorkManager Inspector artık Android Studio Arctic Fox kullanılırken kullanılabilir.
Sürüm 2.5.0-rc01
13 Ocak 2021
androidx.work:work-*:2.5.0-rc01 iptal edilir. 2.5.0-rc01 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
WorkQuerytabanlı API kullanılırken öğeler güncellendikten sonragetWorkInfosLiveDataöğesinin doğru şekilde geçersiz kılınmamasına neden olan hata düzeltildi. (aosp/1540566, b/173769028)- Nadir durumlarda veritabanı işlemlerinin başarılı olarak işaretlenmemesine neden olan hata düzeltildi. Bu durum, bazı Motorola cihazlarda sorunlara neden olur. (aosp/1535368, b/175944460)
- Ölü bir işlemden bağlantı kaldırılmaya çalışılırken
NoSuchElementExceptionkarakterlerinin yoksayılmasına neden olan hata düzeltildi. (aosp/1530589) ConstraintTrackingWorkerişlevini,ListenableWorkerişlevi durdurulmamışsa durduracak şekilde iyileştirin. (aosp/1496844, b/172946965)- androidx.work kitaplıklarını Java 8'i hedefleyecek şekilde güncelleyin (Ibd2f2)
Sürüm 2.5.0-beta02
2 Aralık 2020
androidx.work:work-*:2.5.0-beta02 iptal edilir. 2.5.0-beta02 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
androidx.work:work-multiprocess'da, WorkManager'ın belirlenen işleme bağlanmaya çalışırken çağırma iş parçacığını istemeden engellemesine neden olan hata düzeltildi. (aosp/1475538)PeriodicWorkRequestöğelerinin doğru şekilde mutabakatı yapılmamasına neden olan hata düzeltildi. (b/172475041, aosp/1489577)setForeground*API'leri kullanılırken ön plan hizmeti durdurulduğunda ortaya çıkan platform hatası için geçici çözüm eklendi. (b/170924044, aosp/1489901)
Sürüm 2.5.0-beta01
28 Ekim 2020
androidx.work:work-*:2.5.0-beta01 iptal edilir. 2.5.0-beta01 sürümü şu commit'leri içerir.
Yeni Özellikler
WorkManager, işlem içi planlayıcı tarafından alınabilecekWorkRequestsayısını otomatik olarak sınırlar. İstekler hâlâ FIFO sırasına göre yürütülür. (aosp/1455228)WorkManager, uygulamanın veri deposu kötü durumdayken kurtarmaya çalışır. (aosp/1463103)
Hata Düzeltmeleri
ListenableWorkerkesintiye uğradığında, daha sonra yeniden planlanabilmesi için hemenENQUEUEDolarak işaretleyin. (aosp/1455618, b/170273988)
Sürüm 2.5.0-alpha03
14 Ekim 2020
androidx.work:work-*:2.5.0-alpha03 iptal edilir. 2.5.0-alpha03 sürümü şu commit'leri içerir.
API Değişiklikleri
TestListenableWorkerBuilderveTestWorkerBuilder, ham türleri kullanmaz. (I883ad, b/169787349)
Hata Düzeltmeleri
- Varsayılan uygulama işleminin adını belirlemek için
ApplicationInfokullanın. (b/168716641, aosp/1429950) RemoteWorkManagerveRemoteWorkContinuationiçin görünürlük kurallarını düzeltin. Bu API'ler artık@Restrictedolarak işaretlenmiyor. (aosp/1432091):work:work-multiprocessiçin ProGuard kurallarını düzeltin. (aosp/1432091)- Ön plan hizmetine bağlı uzun süreli işler için bildirim yaşam döngülerini iyileştirin. (b/168502234, aosp/1431331)
Sürüm 2.5.0-alpha02
16 Eylül 2020
androidx.work:work-*:2.5.0-alpha02 iptal edilir. 2.5.0-alpha02 sürümü şu commit'leri içerir.
Yeni Özellikler
idsorgulamak içinWorkInfokullanabilmek üzere WorkQuery'ye bir API ekleyin. (aosp/1412372, b/157335295)- WorkManager, yeni bir yapı (
androidx.work:work-multiprocess:*) ile birden fazla işlem kullanan uygulamaları daha iyi destekler. Bu yeni yapı, büyük uygulamaların karşılaştığı bazı sorunların çözülmesine yardımcı olur. Örneğin:- WorkManager'ın genellikle her uygulama sürecinde başlatılması gerekir. Bu durum, SQLite çekişmesinin artmasına ve dolayısıyla başka sorunlara yol açtığı için iyi değildir. WorkManager'da artık
Configuration#setDefaultProcessName(processName)kullanılarak birincil uygulama süreci belirlemek için kullanılabilecek yeni API'ler var.processName,packageName:processName(ör.com.example:remote) gibi görünen tam nitelikli bir işlem adıdır. - Yeni API'ler:
RemoteWorkManagerveRemoteWorkContinuationileenqueue,cancelvequeryiş istekleri. Bu API'ler, birden fazla işlemde SQLite çekişmesini önlemek içinLiveDatavaryantlarını içermez.enqueue,cancelvequeryile ilgili tüm aramalar AIDL kullanılarakprimaryuygulama sürecine yönlendirilir ve akıcı birListenableFuturedöndürür. (aosp/1392657, aosp/1411210, aosp/1412215, aosp/1417713)
- WorkManager'ın genellikle her uygulama sürecinde başlatılması gerekir. Bu durum, SQLite çekişmesinin artmasına ve dolayısıyla başka sorunlara yol açtığı için iyi değildir. WorkManager'da artık
API Değişiklikleri
- WorkManager artık tamamlanmış ve tamamlanmamış bağımlılıkları olmayan
WorkRequest'ları daha agresif bir şekilde temizliyor. Arabellek süresi7günden1güne değiştirildi. (aosp/1419708)
Hata Düzeltmeleri
- WorkManager artık işleri proaktif olarak uzlaştırıyor. Böylece
WorkRequestveJobSchedulerişleri,WorkManagerbaşlatıldığında senkronize ediliyor. (aosp/1412794, b/166292069)
Sürüm 2.5.0-alpha01
19 Ağustos 2020
androidx.work:work-*:2.5.0-alpha01 iptal edilir. 2.5.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
- Gelecekte
WorkManagerile daha iyi araçlar sunmamızı sağlayacak dahili API'lerdeki değişiklikler. Diğer güncellemeler için takipte kalın.
Hata Düzeltmeleri
- Bazı cihazlarda ağ durumu izlenirken
SecurityExceptionişlenir. (aosp/1396969)
Harici Katkı (External Contribution)
ArrayCreatingInputMergerile ilgili dokümanları Zac Sweers (github/43) düzeltti.
Sürüm 2.4.0
Sürüm 2.4.0
22 Temmuz 2020
androidx.work:work-*:2.4.0 iptal edilir. 2.4.0 sürümü şu commit'leri içerir.
2.3.0 sürümünden beri yapılan önemli değişiklikler
WorkManagers in-process scheduler artık daha yetenekli. Daha önce, devam edenScheduleryalnızca gecikmemiş ve kısıtlamaları karşılanmış işlerin yürütülmesini değerlendiriyordu. Şimdi, devam eden zamanlayıcı, PeriodicWorkRequest'ler de dahil olmak üzere gelecekte yürütülebilecekWorkRequest'leri izler. Devam edenSchedulerda planlama sınırlarına uymaz (ancak WorkManager tarafından kullanılanExecutorboyutunda kısıtlanır). Bu sayede uygulama ön plandayken çok daha fazla WorkRequest çalıştırabilir.WorkManager, gecikmeli işlerin ön planda yürütülmesini yönetmek için yeni bir yapılandırılabilirRunnableSchedulerde sunar. (aosp/1185778)- WorkManager artık RxJava 3'ü destekliyor. RxJava 3'ü kullanmak için şu bağımlılığı eklemeniz gerekir:
implementation "androidx.work:work-rxjava3:2.4.0". (aosp/1277904) WorkInfoile ilgili sorgu yapmak içinWorkQuerykullanabilme özelliği eklendi. Bu özellik, geliştiriciler birden fazla özelliğin kombinasyonuylaWorkInfosorgulamak istediğinde kullanışlıdır. Daha fazla bilgi içinWorkQuery.Builder.fromStates(...),WorkQuery.Builder. fromTags(...)veyaWorkQuery.Builder.fromUniqueWorkNames(...)sayfalarına bakın. (aosp/1253230, b/143847546)Aşağıdaki yöntemleri kullanarak
WorkManager'dan teşhis bilgisi isteme özelliği ekleyin:adb shell am broadcast -a "androidx.work.diagnostics.REQUEST_DIAGNOSTICS" -p "<your_app_package_name>"Bu, aşağıdakiler gibi birçok faydalı bilgi sağlar:
- Son 24 saat içinde tamamlanan WorkRequest'ler.
- Şu anda RUNNING (ÇALIŞIYOR) durumunda olan WorkRequest'ler.
- Planlanmış İş İstekleri. (aosp/1235501)
APPEND'ye benzer olan ancak ön koşulları iptal edilmiş veya başarısız olmuş bir zincirin yerini alanExistingWorkPolicy.APPEND_OR_REPLACE'yı ekleyin. (b/134613984, aosp/1199640)Gelecekte yürütülmesi gereken WorkRequest'leri izlemek için özel bir
RunnableSchedulerekleme olanağı sunar. Bu, işlem içi zamanlayıcı tarafından kullanılır. (aosp/1203944)DelegatingWorkerFactorykullanırken temsilci olarak atanacak fabrikaların dinamik olarak eklenmesi için destek ekleyin. (b/156289105, aosp/1309745)BATTERY_NOT_LOWkısıtlamaları için izlemeyi platformla daha uyumlu hale getirin. (aosp/1312583)İşlem içi planlayıcı artık işlemin adını belirlemek için daha iyi API'ler kullanıyor. Bu, birden fazla işlem kullanan uygulamaları daha iyi desteklemek için yararlıdır. (aosp/1324732)
Aşağıdakileri zorunlu kılan yeni Lint kuralları:
setForegroundAsync()API'leri kullanılırken doğruforegroundServiceTypekullanımı. (b/147873061, aosp/1215915)- WorkManager'ın JobService API'lerini doğrudan kullanırken kullanması gereken JobScheduler kimliklerini belirtme. aosp/1223567
- Varsayılan
WorkerFactorykullanılırkenListenableWorkeruygulamalarının artıkpublicolmasını sağlayan yeni bir lint kuralı eklendi. (aosp/1291262)
setForegroundAsync()için yapılan veListenableWorkertamamlanmadan önce tamamlanmayan çağrılar artık döndürülenListenableFutureüzerindeIllegalStateExceptionile işaretlenecek. (aosp/1262743)Ön planda
Workerişlemi kesintiye uğradıktan sonraForegroundServiceişleminin durdurulmamasına neden olan hata düzeltildi. (b/155579898, aosp/1302153)WorkManager'nın bir ön plan hizmetine bağlıWorker'nin birden fazla örneğini yürütmeye çalıştığı hata düzeltildi (b/156310133, aosp/1309853)
Sürüm 2.4.0-rc01
24 Haziran 2020
androidx.work:work-*:2.4.0-rc01 iptal edilir. 2.4.0-rc01 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- İşlem içi planlayıcı artık işlemin adını belirlemek için daha iyi API'ler kullanıyor. Bu, birden fazla işlem kullanan uygulamaları daha iyi desteklemek için yararlıdır. (aosp/1324732)
Sürüm 2.4.0-beta01
20 Mayıs 2020
androidx.work:work-gcm:2.4.0-beta01, androidx.work:work-runtime:2.4.0-beta01, androidx.work:work-runtime-ktx:2.4.0-beta01, androidx.work:work-rxjava2:2.4.0-beta01 ve androidx.work:work-testing:2.4.0-beta01 yayınlandı. 2.4.0-beta01 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Ön planda
Workerişlemi kesintiye uğradıktan sonraForegroundServiceişleminin durdurulmamasına neden olan hata düzeltildi. (b/155579898, aosp/1302153) WorkManager'nın bir ön plan hizmetine bağlıWorker'nin birden fazla örneğini yürütmeye çalıştığı hata düzeltildi (b/156310133, aosp/1309853).DelegatingWorkerFactorykullanırken temsilci olarak atanacak fabrikaların dinamik olarak eklenmesi için destek ekleyin. (b/156289105, aosp/1309745)BATTERY_NOT_LOWkısıtlamaları için izlemeyi platformla daha uyumlu hale getirin. (aosp/1312583)
Sürüm 2.4.0-alpha03
29 Nisan 2020
androidx.work:work-*:2.4.0-alpha03 iptal edilir. 2.4.0-alpha03 sürümü şu commit'leri içerir.
Yeni Özellikler
- WorkManager artık RxJava 3'ü destekliyor. RxJava 3'ü kullanmak için şu bağımlılığı eklemeniz gerekir:
implementation "androidx.work:work-rxjava3:2.4.0-alpha03". (aosp/1277904) - Varsayılan
WorkerFactorykullanılırkenListenableWorkeruygulamalarının artıkpublicolmasını sağlayan yeni bir lint kuralı eklendi. (aosp/1291262)
API Değişiklikleri
ListenableWorkeryürütmesi tamamlandıktan sonrasetProgressAsync()çağrısı yapıldığında artıkListenableFutureüzerindenExceptionsinyali verilecek. (aosp/1285494)WorkQuery.Builderartıkfinalolarak işaretleniyor. (aosp/1275037)WorkQuery.Builderfabrika yöntemleriwithStates,withTagsvewithUniqueWorkNamessırasıylafromStates,fromTagsvefromUniqueWorkNamesolarak yeniden adlandırıldı. (aosp/1280287)
Hata Düzeltmeleri
- Bir cihazın ağ durumunu izlerken
SecurityExceptionkarakterlerini yoksay. (b/153246136, aosp/1280813)
Sürüm 2.4.0-alpha02
1 Nisan 2020
androidx.work:work-*:2.4.0-alpha02 iptal edilir. 2.4.0-alpha02 sürümü bu commit'leri içerir.
Yeni Özellikler
WorkRequestöğesinin hemConstraints.setRequiresCharging(...)hem deConstraints.setRequiresDeviceIdle(...)gerektirdiği durumlarda uyarı veren yeni bir Lint kuralı eklendi. Bazı cihazlar aynı anda hiç şarj olmuyor ve boşta duruyor. Bu nedenle, bu tür istekler beklenenden daha az sıklıkta çalışır. (aosp/1253840)
API Değişiklikleri
WorkInfoile ilgili sorgu yapmak içinWorkQuerykullanabilme özelliği eklendi. Bu özellik, geliştiriciler birden fazla özelliğin kombinasyonuylaWorkInfosorgulamak istediğinde kullanışlıdır. Daha fazla bilgi içinWorkQuery.Builder withStates(...),WorkQuery.Builder withTags(...)veyaWorkQuery.Builder withUniqueWorkNames(...)sayfalarına bakın. (aosp/1253230, b/143847546)setForegroundAsync()için yapılan veListenableWorkertamamlanmadan önce tamamlanmayan çağrılar artık döndürülenListenableFutureüzerindeIllegalStateExceptionile işaretlenecek. (aosp/1262743)
Hata Düzeltmeleri
PeriodicWorkRequest'lar için geçersiz aralık sürelerini kontrol eden lint kuralı düzeltildi. (aosp/1254846, b/152606442)
Sürüm 2.4.0-alpha01
4 Mart 2020
androidx.work:work-*:2.4.0-alpha01 iptal edilir. 2.4.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
WorkManagers in-process scheduler artık daha yetenekli. Daha önce, devam eden işlem planlayıcı yalnızca gecikmemiş ve kısıtlamaları karşılanmış işlerin yürütülmesini değerlendiriyordu. Şimdi, devam eden zamanlayıcı,PeriodicWorkRequest'ler de dahil olmak üzere gelecekte yürütülebilecekWorkRequest'leri izler. Devam eden işlemdeki planlayıcı, planlama sınırlarına da uymaz (ancak yine de WorkManager tarafından kullanılanExecutorboyutuyla sınırlıdır). Bu sayede uygulama ön planda çalışırken çok daha fazlaWorkRequestyürütülebilir. (aosp/1185778)adb shell am broadcast -a "androidx.work.diagnostics.REQUEST_DIAGNOSTICS" -p "<your_app_package_name>"kullanarak WorkManager'dan teşhis bilgisi isteme özelliği eklendi. Bu, aşağıdakiler gibi birçok faydalı bilgi sağlar:- Son 24 saat içinde tamamlanan WorkRequest'ler.
- Şu anda RUNNING (ÇALIŞIYOR) durumunda olan WorkRequest'ler.
- Planlanmış İş İstekleri. (aosp/1235501)
Aşağıdakileri zorunlu kılan yeni Lint kuralları:
setForegroundAsync()API'leri kullanılırken doğruforegroundServiceTypekullanımı. (b/147873061, aosp/1215915)JobServiceAPI'leri doğrudan kullanırkenWorkManager'in kullanması gerekenJobSchedulerkimliklerini belirtme. (aosp/1223567)
API Değişiklikleri
APPEND'ye benzer olan ancak iptal edilmiş veya ön koşulları karşılamayan bir zinciri değiştirenExistingWorkPolicy.APPEND_OR_REPLACE'yı ekleyin. (b/134613984, aosp/1199640)Gelecekte yürütülmesi gereken
WorkRequest'leri izlemek için özelRunnableSchedulerekleme olanağı sunar. Bu, işlem içi zamanlayıcı tarafından kullanılır. (aosp/1203944)
Hata Düzeltmeleri
setProgress(), daha önce imkansız bir tür olanSingle<Void>döndürdüğü içinRxWorkeriçinde kullanımdan kaldırıldı.CompletableyerinesetCompletableProgress()döndüren yeni bir API eklendi ve yeni API'lere geçişe yardımcı olan yeni Lint kuralları eklendi. (b/150080946, aosp/1242665)
Sürüm 2.3.4
Sürüm 2.3.4
18 Mart 2020
androidx.work:work-*:2.3.4 iptal edilir. 2.3.4 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- 10 dakikalık yürütme penceresi aşıldıktan sonra uzun süren
Workerişlemlerinin birden fazla örneğinin çalışmasına neden olan hata düzeltildi. (aosp/1247484, b/150553353) - WorkManager'ın lint
IssueRegistrysorunu düzeltildi. Katkısı için Slack'ten @ZacSweers'e teşekkür ederiz. (aosp/1217923)
Sürüm 2.3.3
Sürüm 2.3.3
4 Mart 2020
androidx.work:work-*:2.3.3 iptal edilir. 2.3.3 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
Workerkesintiye uğradığında doğru şekilde yeniden planlanmamasına neden olan hata düzeltildi. (b/150325687, aosp/1246571)
Sürüm 2.3.2
Sürüm 2.3.2
19 Şubat 2020
androidx.work:work-*:2.3.2 yayınlanır. 2.3.2 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- WorkManager'ın nadir durumlarda JobScheduler'da 100 iş sınırını aşmasına neden olan sorun düzeltildi. (aosp/1226859, b/149092520)
- ConstraintControllers'daki yarış durumu düzeltildi. (aosp/1220100)
- Uzun süredir çalışan işçiler için ön plan hizmeti yaşam döngüsü yönetimi iyileştirildi. (aosp/1226295)
- Uzun süren çalışanların iptal edilmesi durumunda bildirimlerin iptal edilme yönetimi iyileştirildi. (aosp/1228346)
Sürüm 2.3.1
Sürüm 2.3.1
5 Şubat 2020
androidx.work:work-*:2.3.1 iptal edilir. 2.3.1 sürümü şu commit'leri içerir.
Hata düzeltmeleri
- Ön planda bir
Serviceetkin olduğunda çalışan uzun süreliWorker'lerinNotificationyaşam döngüsünü daha iyi yönetin. (aosp/1218539, b/147249312) WorkManagerartıkandroidx.sqlite:sqlite-framework:2.1.0kararlı sürümüne bağlıdır. (aosp/1217729)ForegroundInfoiçindeforegroundServiceTypekullanılırkenAndroidManifest.xmliçindeforegroundServiceTypebelirtilmesini sağlamak için lint kuralları eklendi. (aosp/1214207, b/147873061)
Sürüm 2.3.0
Sürüm 2.3.0
22 Ocak 2020
androidx.work:work-*:2.3.0, 2.3.0-rc01 tarihinden beri herhangi bir değişiklik yapılmadan yayınlandı. 2.3.0 sürümü şu commit'leri içerir.
2.2.0 sürümünden beri yapılan önemli değişiklikler
ListenableWorker#setForegroundAsync()aracılığıyla uzun süren veya önemli işler için destek.ListenableWorker#setProgressAsync()üzerinden çalışan ilerlemesi desteği.- WorkManager artık kitaplığın bir parçası olarak ek lint kuralları paketliyor. Bu sayede hatalar erken aşamada yakalanabiliyor.
Sürüm 2.3.0-rc01
8 Ocak 2020
androidx.work:work-*:2.3.0-rc01 iptal edilir. 2.3.0-rc01 sürümü şu commit'leri içerir.
Bu sürüm, 2.3.0-beta02 ile aynıdır.
Hata düzeltmeleri
work-testingyapısı artıkwork-runtime-ktxüzerindeapibağımlılığı tanımlıyor. (aosp/1194410)
Sürüm 2.3.0-beta02
18 Aralık 2019
androidx.work:work-*:2.3.0-beta02 iptal edilir. 2.3.0-beta02 sürümü şu commit'leri içerir.
Yeni özellikler
- Kurtarılamayan SQLite istisnaları için daha iyi bir hata mesajı eklendi. (aosp/1185777)
- İsteğe bağlı başlatma kullanılırken içerik sağlayıcının
androidx.work.impl.WorkManagerInitializer,AndroidManifest.xmlöğesinden kaldırılmasını sağlayan bir lint kuralı eklendi. (aosp/1167007) enqueueUniquePeriodicWork()yerinePeriodicWorkRequestiçinenqueue()kullanıldığında lint uyarısı eklendi. (aosp/1166032)
API değişiklikleri
ForegroundInfoartıkListenableWorker.setForegroundAsync()kullanılırken kullanılacaknotificationId'nin belirtilmesini gerektiriyor. Bu, zarar veren bir değişikliktir. Bu sayede, uzun süren birden fazlaWorker'ı paralel olarak çalıştırabilirsiniz.WorkManager, sağlananNotification'lerin kullanım ömrünü de daha iyi yönetir. (b/145473554, aosp/1181208, asop/1181216, asop/1183577)
Hata düzeltmeleri
- Alarmların doğru şekilde temizlenmemesine neden olan AlarmManager uygulamasındaki hata düzeltildi. (aosp/1156444)
- Boş bir
WorkRequestlistesinin yanlış birWorkContinuationzincirinin oluşturulmasına neden olduğu hata düzeltildi. (b/142835274, aosp/1157051)
Bağımlılık değişiklikleri
- WorkManager artık Room 2.2.2'yi kullanıyor.
Sürüm 2.3.0-beta01
20 Kasım 2019
androidx.work:work-*:2.3.0-beta01 iptal edilir. 2.3.0-beta01 sürümü şu commit'leri içerir.
Yeni özellikler
- İsteğe bağlı başlatma kullanılırken
androidx.work.Configuration.Provideröğesinin yanlış uygulanmasından kaynaklanan geliştirici hatalarını önleyen yeni bir lint kuralı eklendi. aosp/1164559
Sürüm 2.3.0-alpha03
23 Ekim 2019
androidx.work:work-*:2.3.0-alpha03 iptal edilir. 2.3.0-alpha03 sürümü şu commit'leri içerir.
Yeni özellikler
WorkManager.createCancelPendingIntent()API'si eklendi. Bu API,AndroidManifest.xml'da başka bir bileşen kaydetmek zorunda kalmadanWorkRequest'leri kolayca iptal etmenizi sağlar. Bu API, özellikleWorkRequests'denNotifications'nin iptal edilmesini kolaylaştırır. Bu API'nin 2.3.0 sürümündeki yeni ön plan API'leriyle eşleştirilmesini bekliyoruz.- WorkManager artık
androidx.room:*:2.2.0kararlı sürümüne bağlıdır.
API değişiklikleri
- Temel platform API'leriyle daha tutarlı olması için
ForegroundInfo.getNotificationType(),ForegroundInfo.getForegroundServiceType()olarak yeniden adlandırıldı. (b/142729893, aosp/1143316)
Hata düzeltmeleri
- İşlem dışında
setTransactionSuccessful()için gereksiz bir çağrıdan kaynaklanan hata düzeltildi. Bu durum nadir taşıma işlemlerinde görülür. (b/142580433, aosp/1141737)
Sürüm 2.3.0-alpha02
9 Ekim 2019
androidx.work:work-*:2.3.0-alpha02 iptal edilir. 2.3.0-alpha02 sürümü şu commit'leri içerir.
Yeni özellikler
- WorkManager artık uzun süren veya işletim sistemi tarafından etkin tutulması gereken önemli işlerin çalıştırılmasını destekliyor. Daha fazla bilgi için
ListenableWorker#setForegroundAsync()(veya Kotlin içinCoroutineWorker#setForeground()) sayfasına bakın. (aosp/1133636)
API değişiklikleri
DataiçindekicontainsKeyAPI'sinin adıhasKeyWithValueOfTypeolarak değiştirildi.ktxkitaplığındaki ilgili uzantı yöntemi de yeniden adlandırıldı. (b/141916545)
Hata düzeltmeleri
- WorkManager, sıraya alınan
WorkRequestsayısı planlama sınırlarına yaklaştığında işi adil bir şekilde planlar. (aosp/1105766) - WorkManager,
ListenableWorker#onStopped()işlevi yalnızca iş zaten tamamlanmamışsa çağırır. (b/140055777) - WorkManager artık bir çalışan kesintiye uğradığında veya son durumuna ulaştığında ilerleme bilgilerini kaldırıyor. (aosp/1114572)
Dataartık çok daha kullanışlı birtoString()görünüme sahip. (b/140945323)Dataartık daha iyi birequals()yönteme sahip. Ayrıca,Arraytürleri içindeepEqualsözelliğini de destekler. (b/140922528)- WorkManager artık dahili veritabanını ve tercih dosyalarını yedeklenmeyen bir dizinde saklıyor. (b/114808216)
Sürüm 2.3.0-alpha01
22 Ağustos 2019
androidx.work:work-*:2.3.September 5, 20190-alpha01 iptal edilir. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.
Yeni özellikler
ListenableWorkerartıksetProgressAsync()API'si aracılığıyla ilerleme durumunu ayarlayabilir. Ayrıca,CoroutineWorker'de ilgili birsuspend-ingsetProgressAPI'si veRxWorker'deSingle<Void>döndüren birsetProgresseklendi. Bu yeni API'ler sayesinde Workers,WorkInfoüzerinden ilerleme bilgilerini iletebilir.WorkInfo'nın karşılık gelen birgetProgressAPI'si vardır. (b/79481554)Data,Worker'ye giriş verilerinin beklenen türde anahtarlara sahip olduğunu doğrulamak için kullanılabilecek bircontainsKey()API'sine sahiptir. (b/117136838)DataartıkData.toByteArray()veData.fromByteArray()kullanılarak serileştirilebilir.Dataile ilgili sürüm oluşturma garantisi olmadığını unutmayın. Bu nedenle, kalıcı hale getirmemeli veya uygulamalar arasında IPC için kullanmamalısınız. Yalnızca aynı uygulamanın birden fazla işlemi arasında güvenle kullanılabilir.InputMergerFactoryöğesiniConfiguration.setInputMergerFactoryüzerinden belirtme özelliği eklendi. (b/133273159)
API değişiklikleri
- WorkManager, daha önce çağrılmış bir
ListenableWorkerörneği döndüren birWorkerFactoryvarsaIllegalStateExceptionörneği oluşturur. (b/139554406) ListenableFutureiptali veListenableWorker'dekionStopped()geri arama özelliğiyle ilgili doküman güncellemeleri. (b/138413671)
Hata düzeltmeleri
- Devam eden planlayıcı artık
idlekısıtlaması olanWorkRequestleri yoksayıyor. Bu istekler artık yalnızca cihaz gerçektenidleolduğundaJobSchedulertarafından alınır. (aosp/1089779) TestSchedulerartık testlerde dahili görev yürütücüsü için belirtilenExecutordeğ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 iptal edilir. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.
Bu sürüm, androidx.work:work-*:2.2.0-rc01 ile aynı.
2.2.0 sürümünde 2.1.0 sürümüne kıyasla yapılan önemli değişiklikler
androidx.work:work-gcm:2.2.0, Google Play Hizmetleri'nin API düzeyleri <= 22 için kullanılabildiği durumlarda GCMNetworkManager'ın planlayıcı olarak kullanılmasını destekleyen yeni bir Maven yapısıdır. Bu, eski API sürümlerinde daha güvenilir ve performanslı arka plan işlemleri yapılmasına yardımcı olan isteğe bağlı bir bağımlılıktır. Uygulamanız Google Play Hizmetleri'ni kullanıyorsa GCMNetworkManager desteğini otomatik olarak almak için bu bağımlılığı Gradle dosyanıza ekleyin. Play Hizmetleri kullanılamıyorsa WorkManager, eski cihazlarda AlarmManager'ı kullanmaya devam eder.
Sürüm 2.2.0-rc01
30 Temmuz 2019
androidx.work:work-*:2.2.0-rc01 iptal edilir. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.
Hata düzeltmeleri
- AlarmManager uygulamasında, hizmetin erken kapanmasına ve nadir durumlarda
RejectedExecutionExceptionile sonuçlanmasına neden olan bir hata düzeltildi. (aosp/1092374) (b/138238197). - Bazı cihazlarda
JobSchedulerAPI'leri kullanılırkenNullPointerExceptionile ilgili geçici çözüm eklendi. (aosp/1091020) (b/138364061), (b/138441699)
Sürüm 2.2.0-beta02
19 Temmuz 2019
androidx.work:work-*:2.2.0-beta02 iptal edilir. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.
Hata düzeltmeleri
2.2.0-beta01sürümünde eklenen, istenmeyen Jacoco bağımlılığı kaldırıldı.
Sürüm 2.2.0-beta01
17 Temmuz 2019
androidx.work:work-*:2.2.0-beta01 iptal edilir. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.
Yeni özellikler
androidx.work:work-gcm:2.2.0-beta01, Google Play Hizmetleri'nin API düzeyleri <= 22 için kullanılabildiği durumlarda GCMNetworkManager'ın planlayıcı olarak kullanılmasını destekleyen yeni bir Maven yapısıdır. Bu, eski API sürümlerinde daha güvenilir ve yüksek performanslı arka plan işlemleri yapılmasına yardımcı olan isteğe bağlı bir bağımlılıktır. Uygulamanız Google Play Hizmetleri'ni kullanıyorsa GCMNetworkManager desteğini otomatik olarak almak için bu bağımlılığı Gradle dosyanıza ekleyin. Play Hizmetleri kullanılamıyorsa WorkManager, eski cihazlarda AlarmManager'ı kullanmaya devam eder.
Hata düzeltmeleri
- Nvidia Shield K1 tabletlerde ağ durumu izlenirken oluşan
IllegalArgumentExceptionsorunu düzeltildi. (aosp/1010188)
Sürüm 2.1.0
Sürüm 2.1.0
11 Temmuz 2019
androidx.work:work-*:2.1.0 iptal edilir. Bu sürüm, androidx.work:work-*:2.1.0-rc01 ile aynı.
2.0.1 sürümünden beri yapılan önemli değişiklikler
work-runtime-ktxartık Java 8'i gerektiriyor. Herhangi bir sorunla karşılaşırsanızbuild.gradlebölümüne aşağıdakileri ekleyebilirsiniz:kotlinOptions { jvmTarget = "1.8" }- WorkManager için isteğe bağlı başlatma eklendi. Bu sayede WorkManager yalnızca referans verildiğinde oluşturulur. b/127497100 Projenizi isteğe bağlı başlatma için ayarlamak üzere:
- Otomatik başlatıcıyı devre dışı bırakın.
- Özel
ApplicationnesnenizdeConfiguration.Provider'i uygulayın. WorkManager.getInstance()ile ilgili tüm referanslarıWorkManager.getInstance(Context)olarak değiştirin. Bu değişiklik kapsamındaWorkManager.getInstance()desteğini sonlandırdık. İsteğe bağlı başlatma işlemi yapmıyor olsanız bile yeniWorkManager.getInstance(Context)yerine her zaman arama yapmak daha güvenlidir.
PeriodicWorkRequestartık başlangıç gecikmelerini destekliyor. Başlangıçta gecikme ayarlamak içinPeriodicWorkRequest.BuilderüzerindesetInitialDelayyöntemini kullanabilirsiniz. b/111404867WorkerFactorykullanılarak bir veya daha fazla kayıtlıDelegatingWorkerFactory'ye yetki verme özelliği eklendi. b/131435993- WorkManager'ın
Configuration.Builder.setTaskExecutoraracılığıyla tüm dahili kayıtları için kullandığıExecutoröğesini özelleştirme özelliği eklendi. WorkerveListenableWorkersınıflarınıwork-testingyapısındaTestWorkerBuilderveTestListenableWorkerBuilderkullanarak birim testi yapılabilir şekilde oluşturma özelliği eklendi.work-testingartık Kotlin'i bağımlılık olarak çektiğini ve varsayılan olarak çeşitli Kotlin uzantıları içerdiğini unutmayın.
WorkInfoiçin çalıştırma denemesi sayısı eklendi. b/127290461Datatürleri artık baytları ve bayt dizilerini depolayıp alabilir. Bu,Datanesnelerinin maksimum boyutunu DEĞİŞTİRMEZ.- WorkManager artık
Room 2.1.0'a bağlıdır. Bu, bazı veritabanı sorunlarını düzeltmelidir.
Sürüm 2.1.0-rc01
27 Haziran 2019
androidx.work:work-*:2.1.0-rc01 iptal edilir. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.
Hata düzeltmeleri
- Yedekleme işlemi devam ederken
JobSchedulerile işler yürütülürken uygulamanın kilitlenmesine neden olan hata düzeltildi b/135858602.
Sürüm 2.1.0-beta02
20 Haziran 2019
androidx.work:work-*:2.1.0-beta02 iptal edilir. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.
Hata düzeltmeleri
TestListenableWorkerBuilderartıkListenableWorkerörnekleri oluştururken doğruWorkerFactorykullanıyor. b/135275844- İşlem sonlandırma nedeniyle
WorkRequest'ların yürütme pencerelerinde kaymalara neden olan hata düzeltildi. b/135272196
Sürüm 2.1.0-beta01
13 Haziran 2019
androidx.work:work-*:2.1.0-beta01 iptal edilir. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.
Hata düzeltmeleri
- WorkManager artık
Room 2.1.0'a bağlıdır. Bu, bazı veritabanı sorunlarını düzeltmelidir. - Ana iş parçacığında bazı başlangıç diski G/Ç işlemleri kaldırıldı.
- Kısıtlama izlemede olası bir kilitlenme düzeltildi. b/134361006
- WorkManager'a atfedilen geçersiz işler önceden iptal edildi. b/134058261
- Yanlış davranan cihazlar için JobScheduler API'lerine bazı koruyucu çağrılar eklendi.
Sürüm 2.1.0-alpha03
5 Haziran 2019
androidx.work:*:2.1.0-alpha03 iptal edilir.
Hata düzeltmeleri
PeriodicWorkRequestile ilgili dokümanlar iyileştirildi.WorkManagerTestInitHelperartık testler için doğru arka plan yürütücüsünü kullanıyor.- Bazı cihazlarda büyük işlemler yapılırken karşılaşılan SQLite sorunları düzeltildi. (b/130182503)
- WorkManager'ın bağımlılıkları artık daha ayrıntılı. (b/133169148).
- WorkManager'ı kullanarak iş planlarken
JobScheduler'ın uygulanmasındaki OEM'e özgü hatalar için geçici çözümler. - Daha önce nadir çökmelere neden olan hizmet ömürleriyle ilgili AlarmManager tabanlı zamanlayıcıda iyileştirmeler yapıldı. (b/133313734)
Sürüm 2.1.0-alpha02
16 Mayıs 2019
WorkManager 2.1.0-alpha02 yayınlandı. Bu sürümde çeşitli yeni API'ler yer alıyor.
API Değişiklikleri
PeriodicWorkRequestartık başlangıç gecikmelerini destekliyor. Başlangıçta gecikme ayarlamak içinPeriodicWorkRequest.BuilderüzerindesetInitialDelayyöntemini kullanabilirsiniz. b/111404867WorkerFactorykullanılarak bir veya daha fazla kayıtlıDelegatingWorkerFactory'ye yetki verme özelliği eklendi. b/131435993WorkManager'ın
Configuration.Builder.setTaskExecutoraracılığıyla tüm dahili kayıtları için kullandığıExecutoröğesini özelleştirme özelliği eklendi.WorkRequest.keepResultsForAtLeast(b/130638001), isteğe bağlı başlatma vePeriodicWorkRequest.Builder(b/131711394) ile ilgili dokümanlar iyileştirildi.
Sürüm 2.1.0-alpha01
24 Nisan 2019
WorkManager 2.1.0-alpha01 yayınlandı. Bu sürümde çeşitli yeni API'ler yer alıyor. Bu sürümden itibaren, 1.x sürümüne geri aktarılmayacak yeni özellikler olacağını lütfen unutmayın. 2.x'e geçmenizi öneririz.
API Değişiklikleri
- WorkManager için isteğe bağlı başlatma eklendi. Bu sayede WorkManager yalnızca referans verildiğinde oluşturulur. b/127497100 Projenizi isteğe bağlı başlatma için ayarlamak üzere:
- Otomatik başlatıcıyı devre dışı bırakın.
- Özel
ApplicationnesnenizdeConfiguration.Provider'i uygulayın. WorkManager.getInstance()ile ilgili tüm referanslarıWorkManager.getInstance(Context)olarak değiştirin. Bu değişiklik kapsamındaWorkManager.getInstance()desteğini sonlandırdık. İsteğe bağlı başlatma işlemi yapmıyor olsanız bile yeniWorkManager.getInstance(Context)yerine her zaman arama yapmak daha güvenlidir.
WorkerveListenableWorkersınıflarınıwork-testingyapısındaTestWorkerBuilderveTestListenableWorkerBuilderkullanarak birim testi yapılabilir şekilde oluşturma özelliği eklendi.work-testingartık bağımlılık olarak Kotlin'i kullandığını ancak varsayılan olarak çeşitli Kotlin uzantılarını da içerdiğini unutmayın.
WorkInfoiçin çalıştırma denemesi sayısı eklendi. b/127290461Datatürleri artık baytları ve bayt dizilerini depolayıp alabilir. Bu,Datanesnelerinin maksimum boyutunu DEĞİŞTİRMEZ.CoroutineWorker.coroutineContextkullanımdan kaldırıldı. Bu alan yanlışlıklaCoroutineDispatcherolarak yazılmış. Askıya alma işlevinin gövdesinde istediğiniz coroutineContext'e kendiniz gidebileceğiniz için artık bu alana ihtiyacınız yok.RxWorker.createWork()veRxWorker.getBackgroundScheduler()artık@NonNulliade türleriyle açıklama eklenmiş olarak gösteriliyor.
Sürüm 2.0.1
Sürüm 2.0.1
9 Nisan 2019
WorkManager 2.0.1 yayınlandı. Bu sürüm, 2.0.1-rc01 ile aynıdır.
Sürüm 2.0.1-rc01
3 Nisan 2019
WorkManager 2.0.1-rc01 yayınlandı. Bu sürümde bazı hata düzeltmeleri yapıldı. Eski 1.x kullanıcıları için bu değişikliklerin bazıları 1.0.1-rc01 sürümünde de görünür.
Hata Düzeltmeleri
- Robolectric testleri artık WorkManager ile düzgün şekilde çalışıyor. b/122553577
- JobScheduler API'lerinden önceki sürümlerde kısıtlama izlemenin temizlenmemesi nedeniyle oluşan nadir bir kilitlenme sorunu düzeltildi. b/129226383
- Uzun iş zincirleriyle ilgili
StackOverflowErrordüzeltildi. b/129091233 PeriodicWorkRequestile ilgili dokümanlar, esnek çalışma saatlerinin API 23'te desteklenmediğini belirtecek şekilde güncellendi.- Kotlin belgelerindeki bazı bozuk bağlantılar düzeltildi.
Sürüm 2.0.0
Sürüm 2.0.0
20 Mart 2019
WorkManager 2.0.0 yayınlandı. Bu sürüm, 2.0.0-rc01 ile aynıdır ve AndroidX bağımlılıklarına sahip 1.0.0 kararlı sürümünün AndroidX sürümüdür. Eski 1.x sürümleri yerine bu sürümü hedeflemenizi öneririz. Tüm etkin geliştirme çalışmaları 2.x'i hedefleyecek ve 1.x yalnızca sınırlı bir süre boyunca kritik hata düzeltmeleri alacak.
Sürüm 2.0.0-rc01
7 Mart 2019
WorkManager 2.0.0-rc01 yayınlandı. Bu sürüm, 1.0.0 kararlı sürümüyle aynıdır ancak AndroidX bağımlılıkları içerir. Bu sürüm 2.0.0 kararlı sürümüne ulaştığında bu sürümü dahil etmeniz gerekir. Eski 1.x sürümleri yalnızca bazı kritik hata düzeltmelerini alır. Tüm etkin geliştirme çalışmaları 2.x'i hedefleyecektir.
AndroidX Öncesi Bağımlılıklar
Referans belgeleri: Java
Groovy
dependencies { def work_version = "1.0.1" // (Java only) implementation "android.arch.work:work-runtime:$work_version" // Kotlin + coroutines implementation "android.arch.work:work-runtime-ktx:$work_version" // optional - RxJava2 support implementation "android.arch.work:work-rxjava2:$work_version" // optional - Test helpers androidTestImplementation "android.arch.work:work-testing:$work_version" }
Kotlin
dependencies { val work_version = "1.0.1" // (Java only) implementation("android.arch.work:work-runtime:$work_version") // Kotlin + coroutines implementation("android.arch.work:work-runtime-ktx:$work_version") // optional - RxJava2 support implementation("android.arch.work:work-rxjava2:$work_version") // optional - Test helpers androidTestImplementation("android.arch.work:work-testing:$work_version") }
Sürüm 1.0.1
Sürüm 1.0.1
9 Nisan 2019
WorkManager 1.0.1 yayınlandı. Bu sürüm, 1.0.1-rc01 ile aynıdır.
1.x dalında çok az güncelleme yapılacağından kullanıcıları WorkManager 2.x'e güncellemeye şiddetle teşvik ettiğimizi lütfen unutmayın. 1.x kitaplığı için yeni API'ler de yayınlanmayacak.
Sürüm 1.0.1-rc01
2 Nisan 2019
WorkManager 1.0.1-rc01 yayınlandı. Bu sürümde bazı hata düzeltmeleri yapıldı.
Hata Düzeltmeleri
- Robolectric testleri artık WorkManager ile düzgün şekilde çalışıyor. b/122553577
- JobScheduler API'lerinden önceki sürümlerde kısıtlama izlemenin temizlenmemesi nedeniyle oluşan nadir bir kilitlenme sorunu düzeltildi. b/129226383
- Uzun iş zincirleriyle ilgili
StackOverflowErrordüzeltildi. b/129091233
Sürüm 1.0.0
Sürüm 1.0.0
5 Mart 2019
Bu, WorkManager'ın 1.0.0 kararlı sürümüdür. WorkManager'ın bu sürümü, 1.0.0-rc02 sürümüyle aynıdır.
Sürüm 1.0.0-rc02
21 Şubat 2019
Bu, WorkManager'ın 1.0.0 kararlı sürümünün ikinci sürüm adayıdır. Bu sürümde iki hata düzeltmesi yer almaktadır.
Hata Düzeltmeleri
WorkerArtık uygulama kilitlendikten sonra doğru şekilde planlanıyor. b/124546316Workers that throw an uncheckedExceptionare now correctly marked asFAILEDand no longer crash the app process.
Sürüm 1.0.0-rc01
14 Şubat 2019
Bu, WorkManager'ın 1.0.0 kararlı sürümünün sürüm adayıdır. Bu sürümde bir hata düzeltmesi yer almaktadır.
Hata Düzeltmeleri
- AlarmManager tabanlı uygulama artık PeriodicWorkRequest'ler için
flexpencerelerini 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(...)kullanıldığı durum düzeltildi. b/123893059 - Android 5.1 (API düzeyi 22) veya önceki sürümlerin yüklü olduğu cihazlarda
NullPointerExceptionsorunu düzeltildi. b/123835104
Sürüm 1.0.0-beta04
4 Şubat 2019
Bu sürümde bazı hata düzeltmeleri yer almaktadır.
Hata Düzeltmeleri
- AlarmManager tabanlı uygulama için PeriodicWork'ün planlanması iyileştirildi.
- AlarmManager tabanlı uygulama kullanılırken WorkManager'ın kısıtlamaları doğru şekilde izleyememesine neden olan sorun düzeltildi. b/123379508
- AlarmManager tabanlı uygulama kullanılırken WorkManager'ın işlem sonlandığında çalışmayı yeniden denemediği durum düzeltildi. b/123329850
- AlarmManager tabanlı uygulama kullanılırken WorkManager'ın Wakelock'ları sızdırmasına neden olan durum düzeltildi.
Sürüm 1.0.0-beta03
25 Ocak 2019
Bu sürümde bazı hata düzeltmeleri yer almaktadır.
Hata Düzeltmeleri
- Bazı durumlarda işlerin düzgün şekilde yürütülmemesine neden olan bir gerileme
1.0.0-beta02ile karşılaştık. b/123211993 - Geri çekilme zamanlamasının düzgün şekilde uygulanmadığı durum düzeltildi. b/122881597
- Android 5.1 (API veya daha eski bir sürümü çalıştıran cihazlarda
ConcurrentModificationExceptiondüzeltildi. Bu,1.0.0-beta02sürümündeki düzeltmenin devamıdır. b/121345393 - Manifest dosyamızda bu ek açıklamanın eksik olduğu bazı bileşenler için
exported=falseeklendi. - WorkManager'ın işletim sistemiyle nasıl etkileşime girdiği hakkında bilgiler paket düzeyindeki dokümanlara eklendi.
Sürüm 1.0.0-beta02
15 Ocak 2019
Bu sürümde bazı hata düzeltmeleri yer almaktadır.
Hata Düzeltmeleri
- Android 6.0 (API düzeyi 23) çalıştıran cihazlarda periyodik çalışmanın aralık başına birden fazla kez çalışmasına neden olabilen uç durum düzeltildi. b/121998363
- Android 5.1 (API düzeyi 22) veya daha eski sürümleri çalıştıran cihazlarda
ConcurrentModificationExceptionsorunu düzeltildi. b/121345393 - Android 5.1 (API düzeyi 22) veya önceki sürümlerin yüklü olduğu cihazlarda kısıtlamalar karşılanmadığında işin hatalı şekilde yürütülmesi sorunu düzeltildi. b/122578012
- Bazı sıra dışı durumlarda daha hızlı olması için optimize edilmiş iş tamamlama işleme. b/122358129
- WorkManager'ın kullandığı birden fazla
LiveDataörneği arasındaki olası yarış durumlarını ele almak için bir değişiklik eklendi. 1.1.1-rc01yerineRoombağımlılığı1.1.1kullanılmaya başlandı. Bu sürümler aynıdır. b/122578011
Sürüm 1.0.0-beta01
19 Aralık 2018
Bu sürümde API değişikliği yoktur. Kritik bir sorun olmadığı sürece WorkManager'ın bir sonraki sürüme kadar API kararlılığını koruması beklenmektedir. Bu sürümde bazı hata düzeltmeleri yer almaktadır.
Hata Düzeltmeleri
- Başarıyla tamamlanan üst öğe işinde daha önce iptal edilmiş alt öğeler artık çalışmayacak. b/120811767
- Günlük kaydı sınıfları düzgün şekilde başlatılır (öncelikle testler sırasında ortaya çıkar).
Sürüm 1.0.0-alpha13
12 Aralık 2018
Bu sürümde, bazı Kotlin kullanıcıları için faydalı olacak küçük bir API değişikliği yapıldı.
API Değişiklikleri
androidx.work.Result,ListenableWorkersınıfının iç sınıfı olarak taşındı. Bu, yeniden düzenlemenin Kotlin'in üst düzeyResultsınıfıyla çakışmasını önler. Bu, API'de yapılan ve geriye dönük uyumluluğu bozan bir değişikliktir. b/120564418
API'de yapılan, geriye dönük uyumluluğu bozan değişiklikler
androidx.work.Result,ListenableWorkersınıfının iç sınıfı olarak taşındı.
Sürüm 1.0.0-alpha12
5 Aralık 2018
Bu sürüm, API'de bazı zarar veren değişiklikler içerir. Lütfen aşağıdaki Zarar Veren API Değişiklikleri bölümüne bakın. Bu sürümün ilk beta sürümümüz olarak yayınlanması bekleniyor. alpha12 ayrıca kapsamlı doküman güncellemeleri de içerir.
API Değişiklikleri
- Yeni bir yapı olan
work-rxjava2,RxWorkerözelliğini sunuyor. Bu,Single<Payload>bekleyen birListenableWorker. - Firebase JobDispatcher'ın desteği, kullanımdan kaldırılacak olması nedeniyle sonlandırıldı. Bu nedenle, beta sürümüne geçiş yaparken
work-firebaseyapısı artık güncellenmeyecek. Gelecekte alternatif bir yöntem eklemeyi planlıyoruz. Payload,Resultile birleştirildi.Resultartık üç somut uygulamaya sahip bir "sealed class" olupResult.success()(veyaResult.success(Data)),Result.failure()(veyaResult.failure(Data)) veResult.retry()aracılığıyla elde edilebilir.ListenableFutureartıkPayloadyerineResultile sonuçlanıyor.Worker,Dataçıkışı için getter ve setter yöntemlerine sahip değil. Bu, zarar veren bir değişikliktir.- Yavaş tetiklenen içerik URI'lerini daha iyi desteklemek için
Constraints.Builder.setTriggerContentMaxDelay(long, TimeUnit)veConstraints.Builder.setTriggerContentUpdateDelay(long, TimeUnit)ile varyantları eklendi. b/119919774 WorkRequest.Builder.setBackoffCriteria(BackoffPolicy, Duration)varyantı eklendi. Bu yöntem için API 26 gerekir.Operation.await()veListenableFuture.await()Kotlin uzantısı yöntemleri eklendi.Operation.getException(),Operation.getThrowable()olarak yeniden adlandırıldı. Bu, zarar veren bir değişikliktir.ContentUriTriggerssınıfı ve onu referans alan yöntemler artık herkese açık olarak kullanılamaz. Bu, zarar veren bir değişikliktir.- API'yi kolaylaştırmak için
WorkManager,WorkContinuationveOneTimeWorkRequestiçindeki diğer varargs yöntemleri kaldırıldı. Derlemeyle ilgili sorunları düzeltmek için mevcut varargs'larınızıArrays.asList(...)ile sarmalayabilirsiniz. Her yöntemin tek bağımsız değişkenli sürümlerini eklemeye devam ediyoruz. Bu, zarar veren bir değişikliktir. WorkContinuation.combine(OneTimeWorkRequest, *)varyant kaldırıldı. Kafa karıştırıcı bir API sunuyorlardı. Mevcutcombineyöntemleri daha anlaşılır. Bu, zarar veren bir değişikliktir.
Hata Düzeltmeleri
- Marshmallow öncesi uygulamalar, halihazırda yürütülen bir görevin işlem ölümünden kurtulma konusunda artık daha güvenilirdir.
LiveData,observeForeverüzerinden gözlemlenir ve WorkManager aracılığıyla izlenir. Bu, Room kitaplığındaki bir düzeltmenin geriye dönük bağlantı noktasıdır. b/74477406- Serileştirilmiş nesne maksimum boyutunu aşarsa
Data.Builder.build()artık istisna oluşturuyor. Bu durum daha önce yalnızca arka plan iş parçacığında meydana geliyordu ve bu nedenle uygun şekilde ele alınamıyordu. - Durdurulan ve iptal edilen çalışmalar daha net şekilde ayırt edilecek.
getWorkInfoById(),ListenableWorker.onStopped()sırasındaCANCELLEDStateile birlikteWorkInfodöndürecek. nullResult'leriniListenableWorker'de hata olarak değerlendirin. b/120362353- Bazen
IllegalArgumentExceptionhatası veren API 24'ü çalıştıran Shield Tablet'ler için deneysel düzeltme. b/119484416
API'de yapılan, geriye dönük uyumluluğu bozan değişiklikler
- Firebase JobDispatcher'ın desteği, kullanımdan kaldırılacak olması nedeniyle sonlandırıldı. Bu nedenle, beta sürümüne geçiş yaparken
work-firebaseyapısı artık güncellenmeyecek. Gelecekte alternatif bir yöntem eklemeyi planlıyoruz. Payload,Resultile birleştirildi.Resultartık üç somut uygulamaya sahip bir "sealed class" olupResult.success()(veyaResult.success(Data)),Result.failure()(veyaResult.failure(Data)) veResult.retry()aracılığıyla elde edilebilir.ListenableFutureartıkPayloadyerineResultile sonuçlanıyor.Worker,Dataçıkışı için getter ve setter yöntemlerine sahip değil.Operation.await()veListenableFuture.await()Kotlin uzantısı yöntemleri eklendi.Operation.getException(),Operation.getThrowable()olarak yeniden adlandırıldı.ContentUriTriggerssınıfı ve onu referans alan yöntemler artık herkese açık olarak kullanılamaz.- API'yi kolaylaştırmak için
WorkManager,WorkContinuationveOneTimeWorkRequestiçindeki diğer varargs yöntemleri kaldırıldı. Derlemeyle ilgili sorunları düzeltmek için mevcut varargs'larınızıArrays.asList(...)ile sarmalayabilirsiniz. Her yöntemin tek bağımsız değişkenli sürümlerini eklemeye devam ediyoruz. WorkContinuation.combine(OneTimeWorkRequest, *)varyant kaldırıldı. Kafa karıştırıcı bir API sunuyorlardı. Mevcutcombineyöntemleri daha anlaşılır.
Sürüm 1.0.0-alpha11
8 Kasım 2018
Bu sürümde, beta tarihinde kararlı API olacak birçok değişiklik yer almaktadır.
Bu sürümde API'de zarar veren değişiklikler var. Lütfen aşağıdaki API'de Zarar Veren Değişiklikler bölümüne bakın.
API Değişiklikleri
work-runtime-ktx, yeni birCoroutineWorkersunuyor.WorkStatus,WorkInfoolarak yeniden adlandırıldı. İlgili tümgetStatusyöntemi varyantlarının adı, ilgiligetWorkInfovaryantları olarak değiştirildi. Bu, zarar veren bir değişikliktir.ListenableWorker.onStopped()artıkWorkRequestiptal edilip edilmediğini gösteren bir boole bağımsız değişkeni kabul etmiyor.WorkManagerartık bu ayrımı yapmıyor. Bu, zarar veren bir değişikliktir.androidx.work.testpaketi,androidx.work.testingpaketi olarak yeniden adlandırıldı. Bu, zarar veren bir değişikliktir.Constraintsüzerindeki ayarlayıcılar artık herkese açık API'nin bir parçası değildir. Bu, zarar veren bir değişikliktir.WorkerParameters.getTriggeredContentUris()veWorkerParameters.getTriggeredContentAuthorities()daha önce diziler döndürdü. Bu yöntemler artık Koleksiyonlar döndürüyor. Bu, zarar veren bir değişikliktir.ListenableWorker.onStartWork(),ListenableWorker.startWork()olarak yeniden adlandırıldı. Bu, zarar veren bir değişikliktir.WorkStatusiçin oluşturucu artık herkese açık API'nin bir parçası değil. Bu, zarar veren bir değişikliktir.Configuration.getMaxJobSchedulerID()veConfiguration.getMinJobSchedulerID(), sırasıylaConfiguration.getMinJobSchedulerId()veConfiguration.getMaxJobSchedulerId()olarak yeniden adlandırılır. Bu, zarar veren bir değişikliktir.- API'nin ergonomisini iyileştirmek için herkese açık API'ye çok sayıda
@NonNullnotu eklendi. WorkManager.enqueueUniqueWork()oluşturmadan benzersizOneTimeWorkRequest'leri sıraya almak içinWorkManager.enqueueUniqueWork()API'sini ekleyin.WorkContinuationWorkManagerüzerindekienqueuevecancelyöntemlerinin tüm varyantları artık yeni birOperationtürü döndürüyor. Bu, zarar veren bir değişikliktir.enqueue'nın tüm varyantları artıkWorkRequest'ler için varargs'ı kabul etmiyor. Bu, zarar veren bir değişikliktir. Bunun yerine Koleksiyonlar'ı kullanın. Mevcut kodu değiştirmek içinArrays.asList()simgesini kullanabilirsiniz. Bunu, API yüzeyini ve yöntem sayısını azaltmak için yaptık.initializeWorkManagerişlemini süreç başına birden fazla kez denemek artıkIllegalStateExceptionile sonuçlanacak. Bu, zarar veren bir değişikliktir.
Hata Düzeltmeleri
work-runtime-ktxyapıtındakiWorkRequest.BuilderartıkListenableWorkerkullanıyor. b/117666259 numaralı hata düzeltildi.PeriodicWorkiçin bir sonraki çalıştırma zamanının gelecekte olduğundan emin olun. b/118204399 numaralı hata düzeltildi.- Uygulama başlatılırken WorkManager kullanılırken olası disk G/Ç'sini kaldırın. b/117796731 numaralı hata düzeltildi.
WorkConstraintsTrackeriçinde yarışma durumunu düzeltin. android-workmanager/issues/56 sorunu düzeltildi.
API'de yapılan, geriye dönük uyumluluğu bozan değişiklikler
WorkStatus,WorkInfoolarak yeniden adlandırıldı. İlgili tümgetStatusyöntemi varyantlarının adı, ilgiligetWorkInfovaryantları olarak değiştirildi.ListenableWorker.onStopped()artıkWorkRequestiptal edilip edilmediğini gösteren bir boole bağımsız değişkeni kabul etmiyor.WorkManagerartık bu ayrımı yapmıyor.androidx.work.testpaketi,androidx.work.testingpaketi olarak yeniden adlandırıldı.Constraintsüzerindeki ayarlayıcılar artık herkese açık API'nin bir parçası değildir.WorkerParameters.getTriggeredContentUris()veWorkerParameters.getTriggeredContentAuthorities()daha önce diziler döndürdü. Bu yöntemler artık Koleksiyonlar döndürüyor.ListenableWorker.onStartWork(),ListenableWorker.startWork()olarak yeniden adlandırıldı.WorkStatusiçin oluşturucu artık herkese açık API'nin bir parçası değil.Configuration.getMaxJobSchedulerID()veConfiguration.getMinJobSchedulerID(), sırasıylaConfiguration.getMinJobSchedulerId()veConfiguration.getMaxJobSchedulerId()olarak yeniden adlandırılır.WorkManagerüzerindekienqueuevecancelyöntemlerinin tüm varyantları artık yeni birOperationtürü döndürüyor.enqueue'nın tüm varyantları artıkWorkRequest'ler için varargs'ı kabul etmiyor.initializeWorkManagerişlemini süreç başına birden fazla kez denemek artıkIllegalStateExceptionile sonuçlanacak.
Sürüm 1.0.0-alpha10
11 Ekim 2018
Bu sürüm, geliştirici tarafından kontrol edilen asenkron çalışmayı destekler. Bu sürümde API'de zarar veren değişiklikler var. Lütfen aşağıdaki API'de Zarar Veren Değişiklikler bölümüne bakın.
WorkManager'ın alfa döneminin son aşamalarına girdiğini düşünüyoruz. Beta sürümünde API'nin kararlı olmasını bekliyoruz. Bu nedenle, lütfen sorun izleyicimizde geri bildiriminizi göndermek için biraz zaman ayırın.
API Değişiklikleri
- Önceden kullanılan tüm
deprecatedyöntemleri ve sınıfları (özellikle varsayılanWorkeroluşturucu) kaldırıldı. Bu, API'de yapılan ve geriye dönük uyumluluğu bozan bir değişikliktir. NonBlockingWorkersınıfınıListenableWorkerolarak yeniden adlandırdı. Bu sınıf artık gizli olmayan bir herkese açık sınıf ve kullanıma hazır.ListenableWorker, ana iş parçacığında çağrılan bir soyut yönteme (ListenableFuture<Payload> onStartWork()) erişim sağlar. Çalışmayı başlatmak ve eşzamansız olarak işlemek sizin sorumluluğunuzdadır. İşlem tamamlandığındaListenableFutureöğesini uygun şekilde güncellemeniz gerekir.ListenableFuturereferans uygulamaları,alpha02içindekiFuturespaketinde sağlanır (WorkManagerbölümünün altına bakın).Worker,ListenableWorker'yi genişletir ve soyut birResult doWork()yöntemiyle eskisi gibi çalışmaya devam eder.Worker'daki bazı yöntemler ve üyelerListenableWorker'a taşındı.- Yakında, Kotlin eşzamanlı rutinlerini (kararlı sürümler yayınlandıktan sonra) ve RxJava2'yi kullanan
ListenableWorkeriçin referans uygulamalar sunacağız.
- Arayüz
WorkerFactoryve somut uygulamaDefaultWorkerFactory,WorkerFactoryadlı bir soyut sınıfta birleştirildi. Uygulama, kullanıcı tarafından oluşturulan tümWorkerFactoryörnekleri için son çare olarak yansıtma tabanlı varsayılan davranışın çağrılmasını sağlar. Bu, zarar veren bir değişikliktir. WorkManager.synchronous()veWorkContinuation.synchronous()ile ilgili tüm yöntemler kaldırıldı. API'deki birçok yöntemin dönüş türü olarakListenableFuture<Void>eklendi. Bu, API'de yapılan ve geriye dönük uyumluluğu bozan bir değişikliktir.- Artık
ListenableFuturekullanarak senkron olarak alabilir ve gözlemleyebilirsiniz. Örneğin,WorkManager.enqueue()daha öncevoiddeğerini döndürürken artıkListenableFuture<Void>değerini döndürüyor. İşlem tamamlandıktan sonra kodu çalıştırmak içinListenableFuture.addListener(Runnable, Executor)veyaListenableFuture.get()numaralı telefonu arayabilirsiniz. - Bu
ListenableFuturesimgelerinin, işlemin başarılı olup olmadığını değil, yalnızca tamamlandığını gösterdiğini unutmayın. Bu bilgileri öğrenmek için WorkManager yöntemlerini zincirlemeniz gerekir. - Bu nesneler üzerindeki
cancel()çağrılarını yoksayıyoruz. Çünkü bu çağrılar kafa karıştırıcı ve mantık yürütmesi zor (işlemi mi yoksa ortaya çıkan çalışmayı mı iptal ediyorsunuz?). Bu durum,Futuresözleşmesi kapsamındadır. - Senkron
getStatus*yöntemleriyle eşitliği korumak içinListenableFuturevaryantları sağladık veLiveDatadöndüren mevcut olanları, adın bir parçası olarak açıkça "LiveData" içerecek şekilde yeniden adlandırdık (ör.getStatusesByIdLiveData(UUID)). Bu, API'de yapılan bir değişikliktir.
- Artık
Hata Düzeltmeleri
- alpha09'da bilinen ve yinelenen
androidx-annotations.prodosyalarıyla ilgili sorun düzeltildi. Gradle dosyanızdanexclude 'META-INF/proguard/androidx-annotations.pro'öğesini silerek önceki sürüm notlarındaki geçici çözümü kaldırabilirsiniz. - Yeni
Workeroluşturucusunu korumak için proguard yapılandırmaları eklendi. b/116296569 - Çalışmanın
REPLACEdığı yarış koşulunda olasıNullPointerExceptionsorununu düzeltin. b/116253486 ve b/116677275 WorkContinuation.combine()artık iki veya daha fazla yerine bir veya daha fazlaWorkContinuationkabul ediyor. b/117266752
API'de yapılan, geriye dönük uyumluluğu bozan değişiklikler
- Önceden kullanılan tüm
deprecatedyöntemleri ve sınıfları (özellikle varsayılanWorkeroluşturucu) kaldırıldı. - Arayüz
WorkerFactoryve somut uygulamaDefaultWorkerFactory,WorkerFactoryadlı bir soyut sınıfta birleştirildi. WorkManager.synchronous()veWorkContinuation.synchronous()kaldırıldı.WorkManager.getStatus*()yöntemleri artıkListenableFuturedöndürüyor.WorkManager.getStatus*LiveData()dönüşLiveDatasn.
Sürüm 1.0.0-alpha09
19 Eylül 2018
Bilinen Sorun
"İşletim sisteminden bağımsız "META-INF/proguard/androidx-annotations.pro" yoluyla birden fazla dosya bulundu" sorununu yaşıyorsanız lütfen alpha10'da sorunu düzeltirken geçici bir çözüm olarak gradle dosyanıza aşağıdakileri ekleyin:
Groovy
android { packagingOptions { exclude 'META-INF/proguard/androidx-annotations.pro' } }
Kotlin
android { packagingOptions { exclude("META-INF/proguard/androidx-annotations.pro") } }
Hata Düzeltmeleri
- "100 iş" hatası için gereken başka bir düzeltme eklendi. b/115560696
- Yarış koşulları nedeniyle oluşan yabancı anahtar kısıtlama hataları için bazı düzeltmeler eklendi. b/114705286
- Temel
Workeriçin yetkilendirilmişConstraintTrackingWorker.onStopped(boolean)çağrıları. b/114125093 - Firebase JobDispatcher için doğru minimum geri çekilme gecikmesini zorunlu kılın. b/113304626
- Kitaplık içinde iş parçacığı oluşturma işlemi iyileştirildi.
LiveDataöğesinin dahili olarak yinelenmesini önlemeyle ilgili olası sorun düzeltildi.
API Değişiklikleri
- Artık
WorkManager.Configuration'nin bir parçası olarakWorkerFactorybelirterek çalışma zamanında kendiWorkerörneklerinizi oluşturabilirsiniz. Yedek fabrika, WorkManager'ın önceki sürümlerinin davranışıyla eşleşenDefaultWorkerFactory'dır.WorkerveNonBlockingWorkeriçin varsayılan oluşturucular artık kullanımdan kaldırıldı olarak işaretleniyor. Lütfen yeni oluşturucuyu (Worker(Context, WorkerParameters)) kullanın vesuper(Context, WorkerParameters)çağrısı yapın. WorkManager'ın gelecekteki sürümlerinde varsayılan oluşturucu kaldırılacaktır.
- Yeni
ListenableFutureyapısını dahili olarak kullanmaya başladık (Guava bağımlılıkları içermez). Gelecek sürümlerde ListenableFutures'ı API'ye ekleyeceğiz. Bu değişiklik,NonBlockingWorker'nın nihai olarak yeniden gösterilmesini destekleyecektir. TestDriver'daTestDriver.setInitialDelayMet(UUID)veTestDriver.setPeriodDelayMet(UUID)üzerinden zamanlanmış işleri tetikleme özelliği eklendi. b/113360060
Zarar Veren Değişiklikler
- Varsayılan
WorkerveNonBlockingWorkeroluşturucular kullanımdan kaldırıldı. Lütfen en kısa sürede yeni oluşturucuya geçin. Gelecekteki sürümlerde varsayılan oluşturucu kaldırılacak.
Sürüm 1.0.0-alpha08
27 Ağustos 2018
Hata Düzeltmeleri
- WorkManager bileşenleri, doğrudan başlatma sırasında etkinleştirilmemeleri için doğrudan başlatma işleminden haberdar olmayan bileşenler olarak açıkça etiketlendi. Gelecekte, doğrudan başlatma işlemine duyarlı bir WorkManager sürümü sunacağız. b/112665532
- Yeniden denenmiş işin çalışmamasına neden olan sorun düzeltildi. b/112604021
- Periyodik çalışmanın tekrar tekrar yürütülmemesi sorunu (yukarıdaki sorunla ilgili) düzeltildi. b/112859683
- Uygulama işlemi zaten çalışıyorken geri çekilme politikalarına uyulur.
- Sınırın 10 KB olduğunu belirtmek için
Databölümündeki düzeltilmiş istisna mesajları. JobSchedulerişleme tamamlanmasında yaşanan gecikmeyi hesaba katmak içinConfiguration.setMaxSchedulerLimit(int)maksimum değeri 50'ye düşürüldü. b/112817355
Sürüm 1.0.0-alpha07
16 Ağustos 2018
Hata Düzeltmeleri
- Sınırsız sayıda sonuç döndürebilen negatif sınırlara sahip olası bir SQL sorgusu düzeltildi.
- Yürütmesi tamamlanan işler artık diğer zamanlayıcılarda bu işin bekleyen tüm kopyalarını doğru şekilde iptal ediyor. Bu durum,
JobScheduleriş sınırı aşılmasına neden oldu. b/111569265 ConstraintTrackersürümündeConcurrentModificationExceptionsorunu düzeltildi. b/112272753Data.getBooleanArray(String)veData.getIntArray(String)işlevlerinin dönüş türü açıklamaları@NonNullyerine@Nullableolarak değiştirildi. b/112275229
API Değişiklikleri
Workerartık yeni bir sınıf olanNonBlockingWorker'ı sunuyor. Bu durum, mevcut kullanımı etkilemez. GelecekteNonBlockingWorker, özel iş parçacığı oluşturma çözümleri için tam olarak desteklenen bir öğe olacaktır.Data.getBooleanArray(String)veData.getIntArray(String)işlevlerinin dönüş türü açıklamaları@NonNullyerine@Nullableolarak değiştirildi. b/112275229- Kotlin uzantıları:
Map.toWorkData()kullanımdan kaldırıldı ve mevcut API'lerle daha tutarlı olması için üst düzeyworkDataOf(vararg Pair<String, Any?>)eklendi.
Sürüm 1.0.0-alpha06
1 Ağustos 2018
Hata Düzeltmeleri
- İş planlarken veritabanı kilidini önleme. b/111801342
PeriodicWorkuygulamasının, Doze modundayken planlandığı gibi çalışmamasına neden olan hata düzeltildi. b/111469837WorkManageruygulamasının kilitlenmesine neden olan, kısıtlamaları izlerken oluşan yarış durumu düzeltildi. googlecodelabs/android-workmanager/issues/56WorkRequest.Builder#build()kullanırken benzersizWorkRequestler oluşturun. b/111408337RescheduleReceiverkullanımını yalnızcaWorkRequestgerektiren durumlarda etkinleştirin. b/111765853
Sürüm 1.0.0-alpha05
24 Temmuz 2018
API Değişiklikleri
WorkManager.getInstance()artık@Nullableyerine@NonNullile açıklama ekleniyor. Bunun yerine, tekil öğe manuel başlatma durumlarında düzgün şekilde başlatılmazsa yöntem birIllegalStateExceptionoluşturur. Bu, API'de uyumsuzluğa neden olan bir değişikliktir.- WorkManager ayrıntı düzeyini kontrol edebilen yeni bir API (
Configuration.Builder.setMinimumLoggingLevel(int)) eklendi. WorkManager, varsayılan olarakLog.INFOve üzeri günlükleri kaydeder. Data.getString()işlevinin imzası değiştirildi. Bu işlev artık varsayılan değer almıyor (değer örtülü olaraknull). Bu, API'de yapılan ve geriye dönük uyumluluğu bozan bir değişikliktir.- Yalnızca dahili kullanım için gereken bazı yöntemler
@hideolarak işaretlendi.Constraintsoluşturucusu,Data.toByteArray()veData.fromByteArray(byte[])buna dahildir. Bu, API'de yapılan ve geriye dönük uyumluluğu bozan bir değişikliktir.
Hata Düzeltmeleri
- WorkManager, otomatik yedeklemenin bilinen durumlarında artık iş yürütmüyor. Bu durum kilitlenmeye neden olmuş olabilir. b/110564377
JobSchedulerkullanılırkenPeriodicWorkRequestetkinliklerinin iki kez planlanması sorunu düzeltildi. b/110798652- Cihaz uyku moduna geçtikten sonra
PeriodicWorkRequestların doğru şekilde yürütülmemesi sorunu düzeltildi. b/111469837 - Firebase JobDispatcher kullanılırken yaşanan ilk gecikme sorunu düzeltildi. b/111141023
- Bazı olası yarış koşulları ve zamanlama sorunları düzeltildi.
- Artık ihtiyaç duyulmayan
BroadcastReceiver'lar doğru şekilde boşaltıldı. - Uygulamalar zorla kapatıldıktan sonra yeniden başlatıldığında yeniden planlama performansı optimize edildi.
- Belirtilen
WorkRequestkuyruğa alınmadan önce veya sonraTestScheduler.setAllConstraintsMet(UUID)çağrılmasına izin verilir. b/111238024
Zarar Veren Değişiklikler
WorkManager.getInstance()artık@Nullableyerine@NonNullile açıklama ekleniyor.Data.getString()işlevinin imzası değiştirildi. Bu işlev artık varsayılan değer almıyor (örtülü olaraknull).- Yalnızca dahili kullanım için gereken bazı yöntemler
@hideolarak işaretlendi.Constraintsoluşturucusu,Data.toByteArray()veData.fromByteArray(byte[])buna dahildir.
Sürüm 1.0.0-alpha04
26 Haziran 2018
Hata Düzeltmeleri
PeriodicWorkRequesttabanlı uygulama kullanılırkenPeriodicWorkRequestartık doğru şekilde yeniden planlanıyor.AlarmManager- Tüm çalışanlar, çıkmaya zorlama veya yeniden başlatma işleminden sonra yeniden planlandığında ortaya çıkabilecek olası ANR sorunu düzeltildi. b/110507716
- Çeşitli WorkManager API'lerine nullability ek açıklamaları eklendi. b/110344065
- Çalışan yürütmesi sırasında oluşan yakalanmayan istisnaları günlüğe kaydetme. b/109900862
- WorkManager'ın eski bir sürümüne geri dönmeye karar vermeniz durumunda, yıkıcı veritabanı taşımalarına izin verildi. b/74633270
- Örtülü etiketlerin kopyaları oluşturulursa taşıma işleminin kilitlenmesine neden olan sorun düzeltildi. Bu çok nadir görülen bir sorundur ve yalnızca aynı örtülü etiket biçimini kendiniz kullandıysanız ortaya çıkar.
Sürüm 1.0.0-alpha03
19 Haziran 2018
Hata Düzeltmeleri
AlarmManagertabanlı uygulamadaki yarış durumu düzeltildi. b/80346526.Cihaz yeniden başlatıldıktan sonra
JobSchedulerkullanılırken yinelenen işler düzeltildi.İçerik URI'si tetikleyicileri olan işler artık yeniden başlatma işlemlerinde de devam ediyor. b/80234744
Doküman güncellemeleri. b/109827628, b/109758949, b/80230748
WorkRequestyeniden sıraya alınırken kilitlenme sorunu düzeltildi. b/109572353.work-runtime-ktxbağımlılığı kullanılırken Kotlin derleyici uyarıları düzeltildi.WorkManager artık
Roomsürüm1.1.1-rc1'ü kullanıyor.
API Değişiklikleri
WorkContinuation.getStatuses()'nin senkronize sürümü olangetStatusesSync()eklendi.Worker, kullanıcı tarafından başlatılan iptal ile işletim sistemi tarafından istenen geçici durdurma arasında ayrım yapabilir. Herhangi bir durdurma isteğinde bulunulduysaWorker.isStopped(),truedeğerini döndürür. Çalışma açıkça iptal edildiğindeWorker.isCancelled(),truedeğerini döndürür. b/79632247- API 28'de JobParameters#getNetwork() için destek eklendi. Bu,
Worker.getNetwork()üzerinden kullanıma sunulur. Configuration.Builder.setMaxSchedulerLimit(int maxSchedulerLimit)eklendi. BöyleceJobSchedulerveyaAlarmManageradresine kaç iş gönderilebileceğini zorunlu kılabilirsiniz. Bu sayedeWorkManager, mevcut tümJobScheduleryuvalarınızı kullanamaz.Configuration.setJobSchedulerJobIdRange(int minJobSchedulerId, int maxJobSchedulerId)iş kimliklerininJobSchedulerWorkManageriçin güvenli kullanım aralığını tanımlamaya yardımcı olanJobScheduleriş kimlikleri eklendi. b/79996760Worker.getRunAttemptCount(), belirli birWorkeriçin geçerli çalıştırma sayısını döndürür. b/79716516WorkManager.enqueueUniquePeriodicWork(String uniqueWorkName, ExistingPeriodicWorkPolicy existingPeriodicWorkPolicy, PeriodicWorkRequest periodicWork), benzersizPeriodicWorkRequest'leri sıraya almanıza olanak tanır. b/79600647WorkManager.cancelAllWork(), tümWorker'leri iptal eder.WorkManageröğesine bağlı kitaplıklar, dahili durumun ek olarak temizlenmesi içinWorkManager.getLastCancelAllTimeMillis()öğesini kullanarak bu yöntemin en son ne zaman çağrıldığını sorgulayabilir.- Tamamlanan işlerin dahili veritabanından kaldırılması için
WorkManager.pruneWork()eklendi. b/79950952, b/109710758
Davranış Değişiklikleri
- Tüm
WorkRequest'ler için,Worker'nin tam nitelikli sınıf adı olan örtülü bir etiket eklendi. Bu sayede,WorkRequestlartagolmadan veyaidkullanılamadığında kaldırılabilir. b/109572351
Zarar Veren Değişiklikler
Worker.WorkerResult,Worker.Resultolarak yeniden adlandırıldı.Worker.onStoppedartıkWorkeraçıkça iptal edildiğindetrueolarak ayarlanan ek birisCancelledparametresine sahip.
Sürüm 1.0.0-alpha02
24 Mayıs 2018
Hata Düzeltmeleri
State.isFinished()üzerindeNullPointerExceptiondüzeltildi. b/79550068WorkeretkinliklerininApplication.onCreate()tarihinde yeniden planlanmasına neden olan sorun düzeltildi. b/79660657- İşletim sisteminin izin verdiğinden daha fazla iş planlayabilmenize neden olan sorun düzeltildi. b/79497378
Workerile ilişkili uyanık kalma kilitlerinin temizlenmesi arka plan iş parçacığına taşındı.AlarmManageruygulaması, 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'defloatdesteği eklendi. b/79443878Data.Builder.putAll()artıkBuilderöğesinin bir örneğini döndürüyor. b/79699162- Belgelerde daha fazla javadoc ve düzeltme. b/79691663
API Değişiklikleri
Workers can react to being stopped.Worker.isStopped(),Workerdurdurulup durdurulmadığını kontrol etmek için kullanılabilir.Worker.onStopped(), basit temizleme işlemleri yapmak için kullanılabilir.Worker.getTags()API,Workerile ilişkili etiketlerinSetdeğerini döndürür.- Süre ve
TimeUnitkombinasyonu alan API'ler içinjavax.time.Durationaşırı yüklemeleri eklendi. Bu,@RequiresApi(26)tarafından korunmaktadır. WorkManageruzantı,androidx.work.ktxpaketindenandroidx.workpaketine taşındı. Eski uzantıların desteği sonlandırıldı ve gelecekteki bir sürümde kaldırılacak.Configuration.withExecutor()desteği sonlandırıldı. Bunun yerineConfiguration.setExecutor()politikasını kullanın.
Sürüm 1.0.0-alpha01
8 Mayıs 2018
WorkManager, garantili ve kısıtlamalara duyarlı arka plan işlerinin planlanmasını ve yürütülmesini kolaylaştırır. Bu ilk sürüm 1.0.0-alpha01.