WorkManager

WorkManager API, güvenilir bir şekilde çalıştırılması gereken ertelenebilir ve eşzamansız görevlerin planlanmasını kolaylaştırır. Bu API'ler, bir görev oluşturmanıza ve iş kısıtlamaları karşılandığında çalıştırmak üzere WorkManager'a teslim etmenize olanak tanır.
Son Güncelleme Kararlı sürüm Sürüm Adayı Beta Sürümü Alfa sürümü
30 Temmuz 2025 2.10.3 - - -

Bağımlılıkları bildirme

WorkManager'a bağımlılık eklemek için Google Maven deposunu projenize eklemeniz gerekir:

Uygulamanız veya modülünüz için build.gradle dosyasına ihtiyacınız olan yapılarla ilgili bağımlılıkları ekleyin:

Eski

dependencies {
    def work_version = "2.10.3"

    // (Java only)
    implementation "androidx.work:work-runtime:$work_version"

    // Kotlin + coroutines
    implementation "androidx.work:work-runtime-ktx:$work_version"

    // optional - RxJava2 support
    implementation "androidx.work:work-rxjava2:$work_version"

    // optional - GCMNetworkManager support
    implementation "androidx.work:work-gcm:$work_version"

    // optional - Test helpers
    androidTestImplementation "androidx.work:work-testing:$work_version"

    // optional - Multiprocess support
    implementation "androidx.work:work-multiprocess:$work_version"
}

Kotlin

dependencies {
    val work_version = "2.10.3"

    // (Java only)
    implementation("androidx.work:work-runtime:$work_version")

    // Kotlin + coroutines
    implementation("androidx.work:work-runtime-ktx:$work_version")

    // optional - RxJava2 support
    implementation("androidx.work:work-rxjava2:$work_version")

    // optional - GCMNetworkManager support
    implementation("androidx.work:work-gcm:$work_version")

    // optional - Test helpers
    androidTestImplementation("androidx.work:work-testing:$work_version")

    // optional - Multiprocess support
    implementation("androidx.work:work-multiprocess:$work_version")
}

Kotlin uzantılarını kullanma hakkında bilgi edinmek için ktx belgelerine bakın.

Bağımlılıklar hakkında daha fazla bilgi için Derleme Bağımlılıkları Ekleme başlıklı makaleyi inceleyin.

Geri bildirim

Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmeye yönelik fikirleriniz olursa lütfen bize bildirin. Yeni bir sorun oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.

Yeni sorun oluşturma

Daha fazla bilgi için Sorun İzleyici belgelerini inceleyin.

Sürüm 2.10

Sürüm 2.10.3

30 Temmuz 2025

androidx.work:work-*:2.10.3 iptal edilir. 2.10.3 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Önceki bir çalışanla aynı ağ kısıtlamalarına sahip çalışanların kısıtlamalarının karşılanmadığını bildirmesine neden olan sorun düzeltildi. (b/427115602).

Sürüm 2.10.2

18 Haziran 2025

androidx.work:work-*:2.10.2 iptal edilir. 2.10.2 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Ağ istekleri ve varsayılan özelliklerle çalışanlar kalıcı hale getirildiğinde, kaldırılan özelliklerin yeniden eklenmesine ve ağ kısıtlamaları olan çalışanların yanlış davranmasına neden olan sorun düzeltildi. (b/409716532)
  • Ağ ve özellikler kullanılabilir olsa bile kısıtlamalar karşılanmadığı için ağ kısıtlamaları olan çalışanların zamanında yürütülmemesine neden olan bir hata düzeltildi. (b/423403088)

Sürüm 2.10.1

23 Nisan 2025

androidx.work:work-*:2.10.1 iptal edilir. 2.10.1 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Kısıtlama izleme için kullanılan bir NetworkCallback'nin WorkManager tarafından kaydedilmesiyle TooManyRequestsException'nın atılma olasılığını azaltın. (b/231499040, b309d5).

Sürüm 2.10.0

30 Ekim 2024

androidx.work:work-*:2.10.0 iptal edilir. 2.10.0 sürümü bu commit'leri içerir.

2.9.1 sürümünden beri yapılan önemli değişiklikler

  • WorkManager kaynaklı işlere izleme etiketleri eklendi. Bu sayede, yürütülen Worker'ın adını içereceğinden "adb shell dumpsys jobscheduler" komutunu anlamak çok daha kolay hale geldi. WorkManager'nın önemli alanlarına da iz bölümleri eklenir.
  • CoroutineWorker öğesinin yürütüldüğü dağıtıcıyı kontrol etmek için Configuration.workerCoroutineContext eklendi.
  • Geliştiriciler, NetworkRequest yöntemiyle bir çalışan için Constraints.setRequiredNetworkRequest kısıtlamasını belirtebilir. Bu sayede, çalışanın hangi ağda çalışması gerektiği konusunda daha ayrıntılı kontrol sahibi olabilirsiniz.
  • WorkManager 2.10.0 sürümü artık SDK 35 ile derleniyor ve SDK 35 uyumluluğu için çeşitli değişiklikler içeriyor.

Sürüm 2.10.0-rc01

24 Ekim 2024

androidx.work:work-*:2.10.0-rc01 iptal edilir. 2.10.0-rc01 sürümü şu commit'leri içerir.

Sürüm 2.10.0-beta01

2 Ekim 2024

androidx.work:work-*:2.10.0-beta01 iptal edilir. 2.10.0-beta01 sürümü bu commit'leri içerir.

Sürüm 2.10.0-alpha04

18 Eylül 2024

androidx.work:work-*:2.10.0-alpha04 iptal edilir. 2.10.0-alpha04 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Ön plan hizmeti türüne göre yürütme zaman aşımı nedeniyle ön plan çalışanının durdurulduğu zaman için durdurma nedenini STOP_REASON_FOREGROUND_SERVICE_TIMEOUT ekleyin. (Ibd0af)

Sürüm 2.10.0-alpha03

4 Eylül 2024

androidx.work:work-*:2.10.0-alpha03 iptal edilir. 2.10.0-alpha03 sürümü bu commit'leri içerir.

Yeni Özellikler

  • WorkManager kaynaklı işlere izleme etiketleri eklendi. Bu sayede, yürütülen Worker'ın adını içereceğinden "adb shell dumpsys jobscheduler" komutunu anlamak çok daha kolay hale geldi. WorkManager'nın önemli alanlarına da iz bölümleri eklenir.

API Değişiklikleri

  • WorkManager 2.10.0 artık SDK 35 ile derleniyor.
  • WorkManager, stopSelf()'i çağırmadığında "kısa hizmet" ve "veri senkronizasyonu" türündeki ön plan çalışanlarının zaman aşımına uğraması ve ANR'ye neden olması sorunu düzeltildi. Bu düzeltme yalnızca ön plan hizmeti türlerinin kullanıma sunulduğu API 34 ve 35'e sahip cihazlar için geçerlidir. (ca06b2, b/364508145)
  • WorkerParameters, WorkerFactory kullanılırken Worker öğesinin bağlandığı uzak işlemi değiştirmeyi mümkün kılan yeni API'ler. (Ibdc8a, Ie8a90, I7373f)

Hata Düzeltmeleri

  • Çalışmanın ön plan türünde, iptal edilen Android 14 ön koşul izinleri varken uzun süredir çalışan bir çalışanı (ör. ön plan çalışanı) yeniden başlatmaya çalışmaktan kaynaklanan kilitlenmeyi düzeltir.WorkManager (b/333957914)
  • AGP 7.3 veya sonraki sürümleriyle (ör. R8 sürümü 3.3) R8 kullanılırken ve AGP 8.1 veya sonraki sürümleriyle (ör. D8 sürümü 8.1) tüm derlemeler için yeni platform API'lerine erişimin manuel olarak ana hatlarının oluşturulması, API modelleme aracılığıyla otomatik olarak yapıldığından kaldırıldı. AGP kullanmayan müşterilerin D8 sürüm 8.1 veya sonraki bir sürüme güncellemeleri önerilir. Daha fazla bilgi için bu makaleye göz atın. (Ia60e0, b/345472586)

Sürüm 2.10.0-alpha02

17 Nisan 2024

androidx.work:work-*:2.10.0-alpha02 iptal edilir. 2.10.0-alpha02 sürümü bu commit'leri içerir.

API Değişiklikleri

  • WorkManager içinde yapılandırılabilir bir @RestrictTo Tracer aracılığıyla izleme aralıkları yayınlama özelliği eklendi. (I17d7f, b/260214125)
  • CoroutineWorker öğesinin yürütüldüğü dağıtıcıyı kontrol etmek için Configuration.workerCoroutineContext eklendi. WorkManager içinde Dispatchers.Default kullanımını tamamen önlemeye yardımcı olur. (Icd1b7)
  • Workers için özel istisna işleyiciler ekleyin (Ib1b74, b/261190695)
  • OneTimeWorkRequest.Builder ve PeriodicWorkRequest.Builder artık Class yerine KClass ile oluşturulabilir: val request = OneTimeWorkRequest.Builder(Worker::class).setConstraints(...).build() (Ib55f6)
  • WorkManager sınıfı Kotlin'e taşındı. LiveData, ListenableFuture veya Flow döndüren yöntemler artık doğru nullability bilgileri sağlıyor. Bu kodda boş değer kabul edilebilirliğiyle ilgili varsayımlar yanlışsa istemcilerin kaynak kodunda değişiklik yapılması gerekebilir. (If6757)

Sürüm 2.10.0-alpha01

24 Ocak 2024

androidx.work:work-*:2.10.0-alpha01 iptal edilir. 2.10.0-alpha01 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Geliştiriciler, NetworkRequest yöntemiyle bir çalışan için Constraints.setRequiredNetworkRequest kısıtlamasını belirtebilir. Bu sayede, çalışanın hangi ağda çalışması gerektiği konusunda daha ayrıntılı kontrol sahibi olabilirsiniz.

API Değişiklikleri

  • Kısıtlama olarak NetworkRequest belirtme özelliği ekleniyor. (Id98a1, b/280634452)

Sürüm 2.9

Sürüm 2.9.1

7 Ağustos 2024

androidx.work:work-*:2.9.1 iptal edilir. 2.9.1 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • WorkManager Çalışmanın ön plan türünde iptal edilmiş Android 14 ön koşul izinleri varken uzun süredir çalışan bir çalışanı (ör. ön plan çalışanı) yeniden başlatma girişiminden kaynaklanan kilitlenme düzeltildi. (b/333957914)

Sürüm 2.9.0

29 Kasım 2023

androidx.work:work-*:2.9.0 iptal edilir. 2.9.0 sürümü şu commit'leri içerir.

2.8.0 sürümünden beri yapılan önemli değişiklikler

  • Flow aracılığıyla gözlemlenebilirlik. LiveData yerine, Worker'ın ilerleme durumu artık Flow'un WorkManager.getWorkInfosFlow ve benzeri yöntemleriyle gözlemlenebilir.
  • WorkManager artık bir çalışanın daha önce neden durdurulduğuyla ilgili ipucu veriyor. getStopReason() yöntemiyle doğrudan bir çalışandan veya WorkInfo üzerinden getStopReason() yöntemiyle sorgulanabilir.
  • setNextScheduleTimeOverride aracılığıyla periyodik çalışanların hassas şekilde planlanması. Bu sayede, bir sonraki periyodik çalışma programı dinamik olarak hesaplanabilir. Bu hesaplama, uyarlanabilir yenileme süreleri, özel yeniden deneme davranışı veya haber feed'i çalışanının her sabah kullanıcı uyanmadan önce kayma olmadan çalıştırılması gibi gelişmiş özellikleri uygulamak için kullanılabilir. Bir sonraki çalışan planlanırken mevcut çalışanın iptal edilmesini önlemek için bu tekniklerle birlikte ExistingPeriodicWorkPolicy.UPDATE kullanılmalıdır.
  • WorkManager'ın, üretimle eşleşen iş parçacığı oluşturma ile test edilmesi. ExecutorsMode.PRESERVE_EXECUTORS, Configuration içinde ayarlanan yürütücüleri korumak ve gerçek ana iş parçacığını kullanmak için initializeTestWorkManager içinde kullanılabilir.
  • CoroutineWorker gibi Coroutines API'leri, ek yapay nesne work-runtime-ktx'ten ana yapay nesne work-runtime'a taşındı. work-runtime-ktx artık boş.

API Değişiklikleri

  • stopReason, WorkInfo adlı CSS'ye eklendi. Bu işlev, çalışan çalıştırıldıktan sonra stopReason kullanılabilir hâle getirir. Bir çalışan durdurulduktan sonra uygulamanın kendisi çok hızlı bir şekilde sonlandırılabilir. Bu nedenle, raporlamada stopReason kullanışlı olabilir. (I21386)
  • Clock'nın yapılandırma üzerinden ayarlanmasına ve Worker testlerinin yürütme sırasını belirlemek için kullanılmasına izin verin. (Ic586e)
  • ListenableWorker'ye, çalışanın neden durdurulduğuyla ilgili ipucu veren getStopReason() yöntemi eklendi. (I07060)
  • Closeguard'ın sızdırılan kaynaklarla ilgili uyarısını önlemek için WorkManagerTestInitHelper#closeWorkDatabase() eklendi. (Ia8d49)
  • WorkInfo'nın oluşturucusu artık herkese açık olduğundan testlerde kullanılabilir. (Ia00b6, b/209145335)
  • work-runtime-ktx artık boş ve CoroutineWorker ile Kotlin'e özgü diğer yardımcı programlar artık ana work-runtime yapısında kullanılabilir. (I71a9a)
  • Periyodik çalışma programlarının doğru şekilde ayarlanmasına olanak tanıyan setNextScheduleTimeOverride yöntemi eklendi (I3b4da)
  • Planlanmış çalışma süresi bilgilerini almak için getNextScheduleTimeMillis, WorkInfo'ye eklendi. (I797e4)
  • İlk gecikme ve periyodiklik bilgileri WorkInfo'ya eklenir. (I52f2f)
  • getWorkInfosByTagFlow, getWorkInfoByIdFlow, getWorkInfosForUniqueWorkFlow, getWorkInfosFlow yöntemleriyle akışlar üzerinden işçileri gözlemleme yöntemi eklendi (If122a)
  • Constraints'in oluşturucularına ve özelliklerine eksik @RequiresApi(...) ek açıklamaları eklendi. Bu işlevler artık WorkManager'nin ilk sürümlerinden beri Constraints.Builder'daki ayarlayıcılarda bulunan ilgili ek açıklamalarla uyumlu. (I6d7d2)
  • WorkManager artık içerik URI çalışanları için ayrı bir sınıra sahip. Bu sayede, yüksek yük altında içerik güncellemelerinin kaçırılmasını önlemek için JobScheduler'de çalışanlara garanti edilen yerler veriliyor. Sınır, Configuration.Builder.setContentUriTriggerWorkersLimit üzerinden yapılandırılabilir. (Ic128f)
  • WorkInfo için kısıtlamalar eklenir. (I162c0)

Sürüm 2.9.0-rc01

18 Ekim 2023

androidx.work:work-*:2.9.0-rc01 iptal edilir. 2.9.0-rc01 sürümü şu commit'leri içerir.

  • Son beta sürümünden bu yana değişiklik yok

Sürüm 2.9.0-beta01

6 Eylül 2023

androidx.work:work-*:2.9.0-beta01 iptal edilir. 2.9.0-beta01 sürümü şu commit'leri içerir.

API Değişiklikleri

Sürüm 2.9.0-alpha02

26 Temmuz 2023

androidx.work:work-*:2.9.0-alpha02 iptal edilir. 2.9.0-alpha02 sürümünde şu commit'ler yer alıyor.

Yeni Özellikler

  • WorkManager artık bir çalışanın daha önce neden durdurulduğuyla ilgili ipucu veriyor. getStopReason() yöntemiyle doğrudan bir çalışandan veya WorkInfo üzerinden getStopReason() yöntemiyle sorgulanabilir.

API Değişiklikleri

  • stopReason, WorkInfo adlı CSS'ye eklendi. İşçi çalıştıktan sonra stopReason kullanılabilir hâle gelir. Bir çalışan durdurulduktan sonra uygulamanın kendisi çok hızlı bir şekilde kapatılabileceğinden, bu durum raporlamada stopReason faydalı olabilir. (I21386)
  • Saat'in yapılandırma üzerinden ayarlanmasına ve Worker testlerinin yürütülme sırasını belirlemek için kullanılmasına izin verin. (Ic586e)
  • ListenableWorker'ye, çalışanın neden durdurulduğuyla ilgili ipucu veren getStopReason() yöntemi eklendi. (I07060)
  • Closeguard'ın sızdırılan kaynaklarla ilgili uyarısını önlemek için WorkManagerTestInitHelper#closeWorkDatabase() eklendi. (Ia8d49)

Hata Düzeltmeleri

  • TestDriver kullanarak overrideNextScheduleTime'ı atlama özelliği eklendi ve test edilebilirlikle ilgili sorunlar düzeltildi. (Ic2905)

Sürüm 2.9.0-alpha01

7 Haziran 2023

androidx.work:work-*:2.9.0-alpha01 iptal edilir. 2.9.0-alpha01 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Flow aracılığıyla gözlemlenebilirlik. LiveData yerine, Worker'ın ilerleme durumu artık Flow'un WorkManager.getWorkInfosFlow ve benzeri yöntemleriyle gözlemlenebilir.
  • setNextScheduleTimeOverride aracılığıyla periyodik çalışanların hassas şekilde planlanması. Bu sayede, bir sonraki periyodik çalışma programı dinamik olarak hesaplanabilir. Bu hesaplama, uyarlanabilir yenileme süreleri, özel yeniden deneme davranışı veya haber feed'i çalışanının her sabah kullanıcı uyanmadan önce kayma olmadan çalıştırılması gibi gelişmiş özellikleri uygulamak için kullanılabilir. Bir sonraki çalışan planlanırken mevcut çalışanın iptal edilmesini önlemek için bu tekniklerle birlikte ExistingPeriodicWorkPolicy.UPDATE kullanılmalıdır.
  • WorkManager, üretimle eşleşen ileti dizileriyle test yapıyor. ExecutorsMode.PRESERVE_EXECUTORS, Configuration içinde ayarlanan yürütücüleri korumak ve gerçek ana iş parçacığını kullanmak için kullanılabilir.
  • CoroutineWorker gibi Coroutines API'leri, ek yapay nesne work-runtime-ktx'den ana yapay nesne work-runtime'ye taşındı. work-runtime-ktx artık boş.

API Değişiklikleri

  • WorkInfo oluşturucu artık herkese açık ve testlerde kullanılabilir. (Ia00b6, b/209145335)
  • work-runtime-ktx artık boş ve CoroutineWorker ile ilgili diğer Kotlin yardımcı programları artık ana work-runtime yapısında kullanılabilir. (I71a9a)
  • Periyodik çalışma programlarının doğru şekilde ayarlanmasına olanak tanıyan setNextScheduleTimeOverride yöntemi eklendi (I3b4da)
  • getEarliestRunTimeMillis, getNextScheduleTimeMillis olarak yeniden adlandırıldı. (I2bd7a)
  • Sonraki planlı çalıştırma zamanı bilgileri WorkInfo'ya eklenir. (I797e4)
  • İlk gecikme ve periyodiklik bilgileri WorkInfo'ya eklenir. (I52f2f)
  • getWorkInfosByTagFlow, getWorkInfoByIdFlow, getWorkInfosForUniqueWorkFlow, getWorkInfosFlow yöntemleriyle akışlar üzerinden işçileri gözlemleme yöntemi eklendi (If122a)
  • Kısıtlamaların oluşturucularına ve özelliklerine eksik @RequiresApi(...) ek açıklamaları eklendi. Bu işlevler artık WorkManager'nin ilk sürümlerinden beri Constraints.Builder'daki ayarlayıcılarda bulunan ilgili ek açıklamalarla uyumlu. (I6d7d2)
  • WorkManager artık içerik URI çalışanları için ayrı bir sınıra sahip. Bu sayede, yüksek yük altında içerik güncellemelerinin kaçırılmasını önlemek için JobScheduler'de çalışanlara garanti edilen yerler veriliyor. Sınır, Configuration.Builder.setContentUriTriggerWorkersLimit üzerinden yapılandırılabilir. (Ic128f)
  • WorkInfo için kısıtlamalar eklenir. (I162c0)

Sürüm 2.8

Sürüm 2.8.1

22 Mart 2023

androidx.work:work-*:2.8.1 iptal edilir. 2.8.1 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • Daha önce iki eşzamanlı yayını doğru şekilde işlemeyen RescheduleReceiver içinde ANR düzeltildi. (b/236906724)

Sürüm 2.8.0

8 Şubat 2023

androidx.work:work-*:2.8.0 iptal edilir. 2.8.0 sürümü şu commit'leri içerir.

2.7.0 sürümünden beri yapılan önemli değişiklikler

Yeni Özellikler

API Değişiklikleri

  • WorkManager.updateWork, orijinal kuyruğa alma zamanını ve zincirlemeyi koruyarak çalışmayı güncellemek için eklendi.(I9a248, b/219446409)
  • ExistingPeriodicWorkPolicy.UPDATE eklendi. Bu politika, düzenli olarak yayınlanan bir çalışmanın adını güncellemeye olanak tanır. Mevcut REPLACE ile benzerdir ancak daha az müdahalecidir: Şu anda çalışıyorsa bir çalışanı iptal etmez ve sıraya alma süresini korur. İlk gecikme ve dönem, güncelleme süresinden değil, orijinal sıraya alma süresinden hesaplanır. REPLACE ve UPDATE arasındaki karışıklığı azaltmak için REPLACE desteği sonlandırıldı. REPLACE öğesinin önceki anlamlarını korumak istiyorsanız REPLACE ile aynı olan yeni eklenen CANCEL_AND_REENQUEUE öğesini kullanabilirsiniz. (I985ed, b/219446409)
  • Consumer<Throwable> aracılığıyla planlama istisnalarını yakalama özelliği eklendi (setSchedulingExceptionHandler)
  • WorkManager'ı başlatmaya çalışırken sorun olup olmadığını belirlemek için setInitializationExceptionHandler aracılığıyla Consumer<Throwable> sağlama özelliği eklendi.
  • OneTimeWorkRequest ve PeriodicWorkRequest için satır içi yardımcılar androidx.work:work-runtime-ktx'dan androidx.work:work-runtime'a taşındı (I0010f, b/209145335)
  • Doğrudan WorkQuery oluşturmak için yardımcı yöntemler WorkQuery.fromIds, WorkQuery.fromStates, WorkQuery.fromUniqueWorkNames, WorkQuery.fromTags eklendi. (b/199919736) (If48f2, b/199919736)
  • Worker listesine getForegroundInfo eklendi. (Ic1ead)
  • RxWorker hem RxJava 2 hem de RxJava 3 için artık setForeground döndüren Completable işlevi var. Bu işlev, ListenableFuture döndüren setForegroundInfoAsync işlevi yerine kullanılabilir.
  • RxWorker hem RxJava 2 hem de RxJava 3 için getForegroundInfo, ListenableFuture döndüren getForegroundInfoAsync yerine kullanılabilecek Single döndürüyor. (b/203851459)
  • Kısıtlamalar artık Constraints.Builder kullanmak yerine doğrudan oluşturulabilir. Bu, Kotlin kullanıcıları için kolaylık sağlar. (Idc390, b/137568653)
  • WorkManager başlatılıp başlatılmadığını kontrol etme özelliği eklendi. Ayrıca, kitaplık geliştiricilerin getConfiguration() ile başlatılan yapılandırmayı alması için yeni bir WorkManager API'si eklendi. (I6eff3, b/212300336)

Hata Düzeltmeleri

  • Aşırı istekli zamanlayıcı nedeniyle çalışanların yük altındayken hemen çalışmasını engelleyen sorun düzeltildi. (I9686b, b/248111307)
  • SDK 33 ve sonraki sürümlerde POST_NOTIFICATIONS izninin verilmesini gerektiren API'lere @RequiresPermission eklendi. (Ie542e, b/238790278)
  • suspendCancellableCoroutine kullanılırken CoroutineScope'daki iptalleri ListenableFuture'a aktarın.

Sürüm 2.8.0-rc01

7 Aralık 2022

androidx.work:work-*:2.8.0-rc01 iptal edilir. 2.8.0-rc01 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Bu sürümde yeni özellikler yok. Bu güncelleme, temel olarak sürüm yükseltme işlemidir.

Sürüm 2.8.0-beta02

9 Kasım 2022

androidx.work:work-*:2.8.0-beta02 iptal edilir. 2.8.0-beta02 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • equals yönteminde, daha önce yeni nesil bilgilerini dikkate almayan WorkInfo düzeltildi. (4977cc)

Sürüm 2.8.0-beta01

5 Ekim 2022

androidx.work:work-*:2.8.0-beta01 iptal edilir. 2.8.0-beta01 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • Aşırı istekli zamanlayıcı nedeniyle çalışanların yük altındayken hemen çalışmasını engelleyen sorun düzeltildi. (I9686b, b/248111307)

Sürüm 2.8.0-alpha04

7 Eylül 2022

androidx.work:work-*:2.8.0-alpha04 iptal edilir. 2.8.0-alpha04 sürümünde şu commit'ler yer alıyor.

API Değişiklikleri

  • WorkerInfo.getGeneration() ve WorkerParameters.getGeneration() işçinin neslini döndüren işlevler eklendi. Bir çalışan, WorkManager.updateWork veya WorkManager.enqueueUniquePeriodicWork üzerinden ExistingPeriodicWorkPolicy.UPDATE kullanılarak güncellendiyse birden fazla nesle sahiptir. Çalışan şu anda çalışıyorsa, çalışanın yürütülmesi sırasında bir güncelleme yapıldıysa bu yöntemin, şu anda çalışan çalışanınkinden daha yeni bir nesil döndürmesinin mümkün olduğunu unutmayın. (I665c5, b/219446409) (I128a9, b/219446409)
  • InitializationExceptionHandler başlatılırken sorun olup olmadığını belirlemek için kullanılabilecek bir İstisna İşleyici olan InitializationExceptionHandler eklendi.WorkManager (I061de)

Sürüm 2.8.0-alpha03

10 Ağustos 2022

androidx.work:work-*:2.8.0-alpha03 iptal edilir. 2.8.0-alpha03 sürümünde şu commit'ler yer alıyor.

Yeni Özellikler

  • Orijinal kuyruğa alma süresini, zincirlemeyi vb. koruyarak WorkRequests öğesini kesintiye yol açmadan güncelleme özelliği eklendi. Daha fazla bilgi için WorkManager.updateWork ve ExistingPeriodicWorkPolicy.UPDATE başlıklı makaleleri inceleyin.

API Değişiklikleri

  • WorkManager.updateWork, orijinal kuyruğa alma zamanını ve zincirlemeyi koruyarak çalışmayı güncellemek için eklendi.(I9a248, b/219446409)
  • ExistingPeriodicWorkPolicy.UPDATE eklendi. Bu politika, belirli aralıklarla yayınlanan bir çalışmanın adını güncellemeye olanak tanır. Mevcut REPLACE işlevine benzer ancak daha az müdahalecidir: Şu anda çalışıyorsa bir çalışanı iptal etmez ve sıraya alma süresini korur. İlk gecikme ve dönem, güncelleme süresinden değil, orijinal sıraya alma süresinden hesaplanır. REPLACE ve UPDATE arasındaki karışıklığı azaltmak için REPLACE desteği sonlandırıldı. REPLACE öğesinin önceki anlamlarını korumak istiyorsanız REPLACE ile aynı olan yeni eklenen CANCEL_AND_REENQUEUE öğesini kullanabilirsiniz. (I985ed, b/219446409)
  • SchedulingExceptionHandler tanımlayarak planlama istisnalarını yakalama özelliği ekleyin. (I033eb)
  • OneTimeWorkRequest ve PeriodicWorkRequest için satır içi yardımcılar androidx.work:work-runtime-ktx'dan androidx.work:work-runtime'a taşındı (I0010f, b/209145335)

Hata Düzeltmeleri

  • SDK 33 ve sonraki sürümlerde POST_NOTIFICATIONS izninin verilmesini gerektiren API'lere @RequiresPermission eklendi. (Ie542e, b/238790278)

Sürüm 2.8.0-alpha02

6 Nisan 2022

androidx.work:work-*:2.8.0-alpha02 iptal edilir. 2.8.0-alpha02 sürümünde şu commit'ler yer alıyor.

API Değişiklikleri

  • Kısıtlamalar artık Builder kullanılarak değil doğrudan oluşturulabilir. Bu, Kotlin kullanıcıları için kolaylık sağlar. (Idc390, b/137568653)
  • WorkManager başlatılıp başlatılmadığını kontrol etme özelliği eklendi. Ayrıca, kitaplık geliştiricilerin getConfiguration() ile başlatılan yapılandırmayı alması için yeni bir WorkManager API'si eklendi. (I6eff3, b/212300336)

Sürüm 2.8.0-alpha01

12 Ocak 2022

androidx.work:work-*:2.8.0-alpha01 iptal edilir. 2.8.0-alpha01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • WorkQuery'yi doğrudan oluşturmak için yardımcı yöntemler WorkQuery.fromStates, WorkQuery.fromUniqueWorkNames, WorkQuery.fromTags eklendi. (If48f2, b/199919736)
  • Gelecekteki SDK'lar için deneysel BuildCompat yöntemleri ekler (Iafd82, b/207528937)
  • getForegroundInfo öğesini Worker listesine ekleyin. (Ic1ead)
  • Doğrudan kimliklerden WorkQuery oluşturmak için yardımcı yöntemler WorkQuery.fromIds eklendi. (Ie5bdf, b/199919736)
  • RxWorker artık setForeground döndüren Completable işlevine sahip. Bu işlev, ListenableFuture döndüren setForegroundInfoAsync yerine kullanılabilir. (I85156)
  • RxJava 2 için RxWorker artık getForegroundInfo döndüren Single içeriyor. Bu, ListenableFuture döndüren getForegroundInfoAsync yerine kullanılabilir. (I21c91, b/203851459)
  • RxJava 3 için RxWorker'da artık getForegroundInfo döndüren Single var. Bu, ListenableFuture döndüren getForegroundInfoAsync yerine kullanılabilir. (I1ca8a)
  • RxWorker artık setForeground döndüren Completable işlevine sahip. Bu işlev, ListenableFuture döndüren setForegroundInfoAsync yerine kullanılabilir. (I992a3, b/203851459)

Hata Düzeltmeleri

  • suspendCancellableCoroutine kullanılırken CoroutineScope'daki iptalleri ListenableFuture'a aktarın. (I77e63)

Sürüm 2.7

Sürüm 2.7.1

17 Kasım 2021

androidx.work:work-*:2.7.1 iptal edilir. 2.7.1 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • CoroutineScope yapılan iptaller, suspendCancellableCoroutine kullanılırken ListenableFuture aktarılır. (I77e63)
  • Gecikmiş iş istekleri hızlandırılmış olarak işaretlendiğinde hemen bir istisna oluşturulur. bef1762

Sürüm 2.7.0

13 Ekim 2021

androidx.work:work-*:2.7.0 iptal edilir. 2.7.0 sürümü şu commit'leri içerir.

2.6.0 sürümünden beri yapılan önemli değişiklikler

  • WorkManager, Android 12'deki ön plan hizmeti kısıtlamalarına yardımcı olmak için yeni bir WorkRequest.Builder.setExpedited(...) API sunar.

  • setExpedited(...) kullanılırken WorkManager, Android 12'den itibaren JobScheduler'daki hızlandırılmış işlere devrederken bir ön plan hizmetine devrederek Android'in önceki sürümlerinde geriye dönük uyumluluk sağlar.

Sürüm 2.7.0-rc01

29 Eylül 2021

androidx.work:work-*:2.7.0-rc01 iptal edilir. 2.7.0-rc01 sürümü şu commit'leri içerir.

Bu sürüm, androidx.work:work-*:2.7.0-beta01 ile aynıdır.

Sürüm 2.7.0-beta01

1 Eylül 2021

androidx.work:work-*:2.7.0-beta01 iptal edilir. 2.7.0-beta01 sürümü şu commit'leri içerir.

Yeni Özellikler

  • WorkManager başlatılırken çok işlemli SQLite çekişmesini azaltır.

API Değişiklikleri

  • Android 12 (S) için temel platform API'leri kararlı olduğundan @ExperimentalExpeditedWork API'lerini kaldırın. (aosp/1792806)

Hata Düzeltmeleri

  • getForegroundInfoAsync() uygulamayan hızlandırılmış çalışanlar için daha iyi bir hata mesajı sağlama. (aosp/1809376)

Sürüm 2.7.0-alpha05

21 Temmuz 2021

androidx.work:work-*:2.7.0-alpha05 iptal edilir. 2.7.0-alpha05 sürümü şu commit'leri içerir.

Bu sürümde WorkManager 2.6.0-beta02 sürümündeki hata düzeltmeleri de yer almaktadır.

Sürüm 2.7.0-alpha04

2 Haziran 2021

androidx.work:work-*:2.7.0-alpha04 iptal edilir.

Bu sürüm, 2.6.0-beta01 sürümündeki değişiklikleri de içerir.

API Değişiklikleri

Hata Düzeltmeleri

  • Hızlandırılmış işler yeniden planlandığında hızlandırılmış olarak kalmaz. Bu işler normal işlere dönüşür.

Sürüm 2.7.0-alpha03

21 Nisan 2021

androidx.work:work-*:2.7.0-alpha03 iptal edilir. 2.7.0-alpha03 sürümü şu commit'leri içerir.

Yeni Özellikler

API Değişiklikleri

Sürüm 2.7.0-alpha02

10 Mart 2021

androidx.work:work-*:2.7.0-alpha02 iptal edilir. 2.7.0-alpha02 sürümünde şu commit'ler yer alıyor.

Hata Düzeltmeleri

  • Android 12'yi hedeflerken kilitlenme sorununu düzeltmek için PendingIntent değişkenliğini açıkça belirtin. (b/180884673)

Sürüm 2.7.0-alpha01

18 Şubat 2021

androidx.work:work-*:2.7.0-alpha01 iptal edilir. 2.7.0-alpha01 sürümü şu commit'leri içerir.

Yeni Özellikler

  • WorkManager, Android 12'deki WorkRequest.Builder.setExpedited(...)ön plan hizmeti kısıtlamalarını dikkate almak için yeni bir API sunar.

    Uygulamalar artık arka plandayken ön plan hizmeti başlatamaz. Bu nedenle, daha önce bir ön plan hizmetinin yaşam döngüsüne bağlı olan uzun süreli çalışmaları daha iyi desteklemek için uygulamalar WorkRequest öğelerini hızlandırılmış olarak işaretleyebilir.

    Bu API, artık desteği sonlandırılan setForegroundAsync(...) / setForeground(...) API'lerinin yerini almıştır.

    setExpedited(...) kullanılırken WorkManager, Android 12'den itibaren JobScheduler içinde hızlandırılmış işlere devrederken ön plan hizmetlerine devrederek Android'in önceki sürümlerinde geriye dönük uyumluluk sağlar.

API Değişiklikleri

  • Hızlı WorkRequest'ler için destek ekleyin.

Sürüm 2.6.0

Sürüm 2.6.0

1 Eylül 2021

androidx.work:work-*:2.6.0 iptal edilir. 2.6.0 sürümü şu commit'leri içerir.

2.5.0 sürümünden beri yapılan önemli değişiklikler

  • WorkManager artık WorkManager'ı başlatmak için androidx.startup kullanıyor. Geçmişte WorkManager'ı başlatmak için tools:node="remove" ContentProvider kullanmışsanız bunun yerine aşağıdakileri yapmanız gerekir.

    <provider
        android:name="androidx.startup.InitializationProvider"
        android:authorities=\"${applicationId}.androidx-startup"
        android:exported="false"
        tools:node=\"merge">
        <!-- If you are using androidx.startup to initialize other components -->
        <meta-data
            android:name="androidx.work.WorkManagerInitializer"
            android:value="androidx.startup"
            tools:node="remove" />
     </provider>
    
    <!-- If you want to disable android.startup completely. -->
     <provider
                android:name="androidx.startup.InitializationProvider"
                android:authorities="${applicationId}.androidx-startup"
                tools:node="remove" />
    
  • Herhangi bir süreçte çalışabilen işçiler için destek eklendi. (Iaf200)

  • Uzak bir işleme bağlanabilen RemoteListenableWorker uygulaması olan RemoteCoroutineWorker eklendi. (I30578)

Sürüm 2.6.0-rc01

4 Ağustos 2021

androidx.work:work-*:2.6.0-rc01 iptal edilir. 2.6.0-rc01 sürümü şu commit'leri içerir.

Bu sürüm, androidx.work:work-*:2.6.0-beta02 ile aynıdır.

Sürüm 2.6.0-beta02

21 Temmuz 2021

androidx.work:work-*:2.6.0-beta02 iptal edilir. 2.6.0-beta02 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • RemoteWorkManager artık RemoteWorkManagerService ile doğru şekilde bağlantısı kaldırılıyor. Bu sayede RemoteWorkManagerService, temizleme işlemini doğru şekilde yapabiliyor. aosp/1730694
  • RemoteListenableWorker artık RemoteWorkerService ile doğru şekilde bağlantıyı kaldırıyor. Bu sayede RemoteWorkerService, temizleme işlemini doğru şekilde yapabiliyor. aosp/1743817
  • ForceStopRunnable artık yalnızca birincil uygulama sürecinde çalışır. Bu bir optimizasyondur ve birden fazla işlem kullanan uygulamalarda kaynak çekişmesini önler. aosp/1749180, aosp/1761729

Sürüm 2.6.0-beta01

2 Haziran 2021

androidx.work:work-*:2.6.0-beta01 iptal edilir. 2.6.0-beta01 sürümü şu commit'leri içerir.

Bu sürümde, belgelerle ilgili bazı küçük iyileştirmeler yapılmıştır. Bu sürüm, 2.6.0-alpha02 sürümüyle büyük ölçüde aynıdır.

Sürüm 2.6.0-alpha02

21 Nisan 2021

androidx.work:work-*:2.6.0-alpha02 iptal edilir. 2.6.0-alpha02 sürümünde şu commit'ler yer alıyor.

Yeni Özellikler

  • Herhangi bir süreçte çalışabilen Worker'lar için destek eklenir. (Iaf200)

  • Uzak bir işleme bağlanabilen RemoteListenableWorker uygulaması olan RemoteCoroutineWorker eklendi. (I30578)

API Değişiklikleri

  • TEMPORARILY_UNMETERED ağ kısıtlaması için destek eklendi. (I08d5e)
  • setProgressAsync() için çoklu işlem çalışan desteği. (Ib6d08)
  • Diğer androidx.startup.Initializer'lerin bunları bağımlılık olarak kullanabilmesi için WorkManagerInitializer'yı herkese açık hale getirin. (I5ab11)

Sürüm 2.6.0-alpha01

24 Mart 2021

androidx.work:work-*:2.6.0-alpha01 iptal edilir. 2.6.0-alpha01 sürümü şu commit'leri içerir.

Yeni Özellikler

  • WorkManager artık WorkManager'ı başlatmak için androidx.startup kullanıyor. Bu işlem daha önce androidx.work.impl.WorkManagerInitializer tarafından yapılıyordu. (aosp/1608813)

    Geçmişte tools:node="remove" işlem yaşam döngüsünü başlatmak için ContentProvider kullanmışsanız bunun yerine aşağıdakileri yapmanız gerekir.

     <provider
        android:name="androidx.startup.InitializationProvider"
        android:authorities=\"${applicationId}.androidx-startup"
        android:exported="false"
        tools:node=\"merge">
        <!-- If you are using androidx.startup to initialize other components -->
        <meta-data
            android:name="androidx.work.impl.WorkManagerInitializer"
            android:value="androidx.startup"
            tools:node="remove" />
     </provider>
    

    (veya)

     <!-- If you want to disable android.startup completely. -->
     <provider
        android:name="androidx.startup.InitializationProvider"
        android:authorities="${applicationId}.androidx-startup"
        tools:node="remove">
     </provider>
    

API Değişiklikleri

  • ListenableWorker'ın outputData değerini döndüren bir Result.getOutputData() API'si ekleyin. (Ie51e3)

Hata Düzeltmeleri

  • AlarmManager API'leri kullanılırken SecurityException istisnasına neden olan bir OEM hatası için geçici çözüm eklendi. (aosp/1587518)

Sürüm 2.5.0

Sürüm 2.5.0

27 Ocak 2021

androidx.work:work-*:2.5.0 iptal edilir. 2.5.0 sürümü şu commit'leri içerir.

2.4.0 sürümünden beri yapılan önemli değişiklikler

  • Birden fazla işlem kullanan uygulamalar için yeni bir :work:work-multiprocess yapısı. Bu, iş isteği planlamasını tek bir süreçte birleştirerek performans artışı sağlar.
    • work-multiprocess uygulamasını kullanmak için şunlara bağımlılık tanımlayın: implementation "androidx.work:work-multiprocess:2.5.0"
    • Configuration.Builder.setDefaultProcessName(String) kullanarak birincil işlem belirleyin.
    • work-multiprocess kullanırken WorkRequest cihazlarınızı yönetmek için RemoteWorkManager'ı da kullanmak istiyorsunuz. RemoteWorkManager her zaman belirlenen işleme ulaşır. İşlem içi zamanlayıcı da belirlenen işlemde çalışır.
  • Bazen ActivityManager, bir işi başlatmak için JobService örneğini oluşturamaz. Bu durum, temel işin bir platform hatası nedeniyle sessizce bırakılmasına neden olur. WorkManager, artık işlerin uzlaştırılmasıyla bir Application başlatıldığında her bir WorkRequest için yedekleme işleri olmasını sağlar. Bu, iş yürütme güvenilirliğini büyük ölçüde artırır. (b/172475041, aosp/1489577)
  • WorkManager, WorkRequest tamamlandıktan sonra WorkRequest izlenen arabellek süresini kısaltarak veritabanı büyümesini sınırlar. Süre daha önce 7 gündü. Bu süre, 1 gün + keepResultsForAtLeast süresi olarak kısaltıldı. (aosp/1419708)
  • TestListenableWorkerBuilder, artık testi kolaylaştırmak için ListenableWorker sınıfını genişleten somutlaştırılmış sınıfı destekliyor. (aosp/1443299, b/169787349)
  • WorkManager Inspector artık Android Studio Arctic Fox kullanılırken kullanılabilir.

Sürüm 2.5.0-rc01

13 Ocak 2021

androidx.work:work-*:2.5.0-rc01 iptal edilir. 2.5.0-rc01 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • WorkQuery tabanlı API kullanılırken öğeler güncellendikten sonra getWorkInfosLiveData öğesinin doğru şekilde geçersiz kılınmamasına neden olan hata düzeltildi. (aosp/1540566, b/173769028)
  • Nadir durumlarda veritabanı işlemlerinin başarılı olarak işaretlenmemesine neden olan hata düzeltildi. Bu durum, bazı Motorola cihazlarda sorunlara neden olur. (aosp/1535368, b/175944460)
  • Ölü bir işlemden bağlantı kaldırılmaya çalışılırken NoSuchElementException karakterlerinin yoksayılmasına neden olan hata düzeltildi. (aosp/1530589)
  • ConstraintTrackingWorker işlevini, ListenableWorker işlevi durdurulmamışsa durduracak şekilde iyileştirin. (aosp/1496844, b/172946965)
  • androidx.work kitaplıklarını Java 8'i hedefleyecek şekilde güncelleyin (Ibd2f2)

Sürüm 2.5.0-beta02

2 Aralık 2020

androidx.work:work-*:2.5.0-beta02 iptal edilir. 2.5.0-beta02 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • androidx.work:work-multiprocess'da, WorkManager'ın belirlenen işleme bağlanmaya çalışırken çağırma iş parçacığını istemeden engellemesine neden olan hata düzeltildi. (aosp/1475538)
  • PeriodicWorkRequest öğelerinin doğru şekilde mutabakatı yapılmamasına neden olan hata düzeltildi. (b/172475041, aosp/1489577)
  • setForeground* API'leri kullanılırken ön plan hizmeti durdurulduğunda ortaya çıkan platform hatası için geçici çözüm eklendi. (b/170924044, aosp/1489901)

Sürüm 2.5.0-beta01

28 Ekim 2020

androidx.work:work-*:2.5.0-beta01 iptal edilir. 2.5.0-beta01 sürümü şu commit'leri içerir.

Yeni Özellikler

  • WorkManager, işlem içi planlayıcı tarafından alınabilecek WorkRequest sayısı için otomatik olarak sıklık sınırlaması uygular. İstekler hâlâ FIFO sırasına göre yürütülür. (aosp/1455228)
  • WorkManager, uygulamanın veri deposu kötü durumdayken kurtarmaya çalışır. (aosp/1463103)

Hata Düzeltmeleri

  • ListenableWorker kesintiye uğradığında, daha sonra yeniden planlanabilmesi için hemen ENQUEUED olarak işaretleyin. (aosp/1455618, b/170273988)

Sürüm 2.5.0-alpha03

14 Ekim 2020

androidx.work:work-*:2.5.0-alpha03 iptal edilir. 2.5.0-alpha03 sürümü şu commit'leri içerir.

API Değişiklikleri

  • TestListenableWorkerBuilder ve TestWorkerBuilder, ham türleri kullanmaz. (I883ad, b/169787349)

Hata Düzeltmeleri

  • Varsayılan uygulama işleminin adını belirlemek için ApplicationInfo kullanın. (b/168716641, aosp/1429950)
  • RemoteWorkManager ve RemoteWorkContinuation için görünürlük kurallarını düzeltin. Bu API'ler artık @Restricted olarak işaretlenmiyor. (aosp/1432091)
  • :work:work-multiprocess için ProGuard kurallarını düzeltin. (aosp/1432091)
  • Ön plan hizmetine bağlı uzun süreli işler için bildirim yaşam döngülerini iyileştirin. (b/168502234, aosp/1431331)

Sürüm 2.5.0-alpha02

16 Eylül 2020

androidx.work:work-*:2.5.0-alpha02 iptal edilir. 2.5.0-alpha02 sürümünde şu commit'ler yer alıyor.

Yeni Özellikler

  • id sorgulamak için WorkInfo kullanabilmek üzere WorkQuery'ye bir API ekleyin. (aosp/1412372, b/157335295)
  • WorkManager, yeni bir yapı (androidx.work:work-multiprocess:*) ile birden fazla işlem kullanan uygulamaları daha iyi destekler. Bu yeni yapı, büyük uygulamaların karşılaştığı aşağıdaki gibi bazı sorunların çözülmesine yardımcı olur:
    • WorkManager'ın genellikle her uygulama sürecinde başlatılması gerekir. Bu durum, SQLite çekişmesinin artmasına ve dolayısıyla başka sorunlara yol açtığı için iyi değildir. WorkManager'da artık Configuration#setDefaultProcessName(processName) kullanılarak birincil uygulama süreci belirlemek için kullanılabilecek yeni API'ler var. processName, packageName:processName gibi görünen tam nitelikli bir işlem adıdır (ör. com.example:remote).
    • Yeni API'ler: RemoteWorkManager ve RemoteWorkContinuation ile enqueue, cancel ve query iş istekleri. Bu API'ler, birden fazla işlemde SQLite çekişmesini önlemek için LiveData varyantlarını içermez. enqueue, cancel ve query ile ilgili tüm aramalar AIDL kullanılarak primary uygulama sürecine yönlendirilir ve akıcı bir ListenableFuture döndürür. (aosp/1392657, aosp/1411210, aosp/1412215, aosp/1417713)

API Değişiklikleri

  • WorkManager artık tamamlanmış ve tamamlanmamış bağımlılıkları olmayan WorkRequest'ları daha agresif bir şekilde temizliyor. Arabellek süresi 7 günden 1 güne değiştirildi. (aosp/1419708)

Hata Düzeltmeleri

  • WorkManager artık işleri proaktif olarak uzlaştırıyor. Böylece WorkRequest ve JobScheduler işleri, WorkManager başlatıldığında senkronize ediliyor. (aosp/1412794, b/166292069)

Sürüm 2.5.0-alpha01

19 Ağustos 2020

androidx.work:work-*:2.5.0-alpha01 iptal edilir. 2.5.0-alpha01 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Gelecekte WorkManager ile daha iyi araçlar sunmamızı sağlayacak dahili API'lerdeki değişiklikler. Diğer güncellemeler için takipte kalın.

Hata Düzeltmeleri

  • Bazı cihazlarda ağ durumu izlenirken SecurityException işlenir. (aosp/1396969)

Harici Katkı (External Contribution)

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 eden Scheduler 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ülebilecek WorkRequest'ları izler. Devam eden Scheduler da planlama sınırlarına uymaz (ancak WorkManager tarafından kullanılan Executor boyutunda kısıtlanır). Bu sayede uygulama ön plandayken çok daha fazla WorkRequest yürütülebilir. Gecikmeli işlerin ön planda yürütülmesini yönetmek için WorkManager, yeni bir yapılandırılabilir RunnableScheduler de sunar. (aosp/1185778)
  • WorkManager artık RxJava 3'ü destekliyor. RxJava 3'ü kullanmak için şu bağımlılığı eklemeniz gerekir: implementation "androidx.work:work-rxjava3:2.4.0". (aosp/1277904)
  • WorkInfo ile ilgili sorgu yapmak için WorkQuery kullanabilme özelliği eklendi. Bu özellik, geliştiriciler WorkInfo'leri birden fazla özelliğin kombinasyonuyla sorgulamak istediğinde kullanışlıdır. Daha fazla bilgi için WorkQuery.Builder.fromStates(...), WorkQuery.Builder. fromTags(...) veya WorkQuery.Builder.fromUniqueWorkNames(...) sayfalarına bakın. (aosp/1253230, b/143847546)
  • Aşağıdaki yöntemleri kullanarak WorkManager'dan teşhis bilgisi isteme özelliği ekleyin:

    adb shell am broadcast -a "androidx.work.diagnostics.REQUEST_DIAGNOSTICS" -p "<your_app_package_name>"
    

    Bu sayede aşağıdakiler gibi birçok faydalı bilgiye ulaşabilirsiniz:

    • Son 24 saat içinde tamamlanan WorkRequest'ler.
    • Şu anda RUNNING (ÇALIŞIYOR) durumunda olan WorkRequest'ler.
    • Planlanmış İş İstekleri. (aosp/1235501)
  • ExistingWorkPolicy.APPEND_OR_REPLACE ekleyin. Bu, APPEND ile benzerdir ancak ön koşulları iptal edilmiş veya başarısız olmuş bir zincirin yerini alır. (b/134613984, aosp/1199640)

  • Gelecekte yürütülmesi gereken WorkRequest'leri izlemek için özel bir RunnableScheduler ekleme olanağı sunar. Bu, işlem içi zamanlayıcı tarafından kullanılır. (aosp/1203944)

  • DelegatingWorkerFactory kullanırken temsilci olarak atanacak fabrikaların dinamik olarak eklenmesi için destek ekleyin. (b/156289105, aosp/1309745)

  • BATTERY_NOT_LOW kısıtlamaları için izlemeyi platformla daha uyumlu hale getirin. (aosp/1312583)

  • İşlem içi planlayıcı artık işlemin adını belirlemek için daha iyi API'ler kullanıyor. Bu, birden fazla işlem kullanan uygulamaları daha iyi desteklemek için yararlıdır. (aosp/1324732)

  • Aşağıdakileri zorunlu kılan yeni Lint kuralları:

    • setForegroundAsync() API'leri kullanılırken doğru foregroundServiceType kullanımı. (b/147873061, aosp/1215915)
    • WorkManager'ın JobService API'lerini doğrudan kullanırken kullanması gereken JobScheduler kimliklerini belirtme. aosp/1223567
    • Varsayılan WorkerFactory kullanılırken ListenableWorkeruygulamalarının artık public olmasını sağlayan yeni bir lint kuralı eklendi. (aosp/1291262)
  • setForegroundAsync() için yapılan ve ListenableWorker tamamlanmadan önce tamamlanmayan aramalar artık döndürülen ListenableFuture üzerinde bir IllegalStateException aracılığıyla sinyallenecek. (aosp/1262743)

  • Ön planda Worker işlemi kesintiye uğradıktan sonra ForegroundService işleminin durdurulmamasına neden olan hata düzeltildi. (b/155579898, aosp/1302153)

  • WorkManager'nın bir ön plan hizmetine bağlı Worker'nin birden fazla örneğini yürütmeye çalıştığı hata düzeltildi (b/156310133, aosp/1309853)

Sürüm 2.4.0-rc01

24 Haziran 2020

androidx.work:work-*:2.4.0-rc01 iptal edilir. 2.4.0-rc01 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • İşlem içi planlayıcı artık işlemin adını belirlemek için daha iyi API'ler kullanıyor. Bu, birden fazla işlem kullanan uygulamaları daha iyi desteklemek için yararlıdır. (aosp/1324732)

Sürüm 2.4.0-beta01

20 Mayıs 2020

androidx.work:work-gcm:2.4.0-beta01, androidx.work:work-runtime:2.4.0-beta01, androidx.work:work-runtime-ktx:2.4.0-beta01, androidx.work:work-rxjava2:2.4.0-beta01 ve androidx.work:work-testing:2.4.0-beta01 yayınlandı. 2.4.0-beta01 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • Ön planda Worker işlemi kesintiye uğradıktan sonra ForegroundService işleminin durdurulmamasına neden olan hata düzeltildi. (b/155579898, aosp/1302153)
  • WorkManager'nın bir ön plan hizmetine bağlı Worker'nin birden fazla örneğini yürütmeye çalıştığı hata düzeltildi (b/156310133, aosp/1309853).
  • DelegatingWorkerFactory kullanırken temsilci olarak atanacak fabrikaların dinamik olarak eklenmesi için destek ekleyin. (b/156289105, aosp/1309745)
  • BATTERY_NOT_LOW kısıtlamaları için izlemeyi platformla daha uyumlu hale getirin. (aosp/1312583)

Sürüm 2.4.0-alpha03

29 Nisan 2020

androidx.work:work-*:2.4.0-alpha03 iptal edilir. 2.4.0-alpha03 sürümünde şu commit'ler yer alıyor.

Yeni Özellikler

  • WorkManager artık RxJava 3'ü destekliyor. RxJava 3'ü kullanmak için şu bağımlılığı eklemeniz gerekir: implementation "androidx.work:work-rxjava3:2.4.0-alpha03". (aosp/1277904)
  • Varsayılan WorkerFactory kullanılırken ListenableWorkeruygulamalarının artık public olmasını sağlayan yeni bir lint kuralı eklendi. (aosp/1291262)

API Değişiklikleri

  • ListenableWorker yürütmesi tamamlandıktan sonra setProgressAsync() işlevini çağırmak artık ListenableFuture üzerinden Exception sinyali verecek. (aosp/1285494)
  • WorkQuery.Builder artık final olarak işaretleniyor. (aosp/1275037)
  • WorkQuery.Builder fabrika yöntemleri withStates, withTags ve withUniqueWorkNames sırasıyla fromStates, fromTags ve fromUniqueWorkNames olarak yeniden adlandırıldı. (aosp/1280287)

Hata Düzeltmeleri

Sürüm 2.4.0-alpha02

1 Nisan 2020

androidx.work:work-*:2.4.0-alpha02 iptal edilir. 2.4.0-alpha02 sürümünde bu commit'ler yer alıyor.

Yeni Özellikler

  • WorkRequest öğesinin hem Constraints.setRequiresCharging(...) hem de Constraints.setRequiresDeviceIdle(...) gerektirdiği durumlarda uyarı veren yeni bir Lint kuralı eklendi. Bazı cihazlar aynı anda hiç şarj olmuyor ve boşta duruyor. Bu nedenle, bu tür istekler beklenenden daha az sıklıkta çalışır. (aosp/1253840)

API Değişiklikleri

  • WorkInfo ile ilgili sorgu yapmak için WorkQuery kullanabilme özelliği eklendi. Bu özellik, geliştiriciler WorkInfo'leri birden fazla özelliğin kombinasyonuyla sorgulamak istediğinde kullanışlıdır. Daha fazla bilgi için WorkQuery.Builder withStates(...), WorkQuery.Builder withTags(...) veya WorkQuery.Builder withUniqueWorkNames(...) sayfalarına bakın. (aosp/1253230, b/143847546)

  • setForegroundAsync() için yapılan ve ListenableWorker tamamlanmadan önce tamamlanmayan aramalar artık döndürülen ListenableFuture üzerinde bir IllegalStateException aracılığıyla sinyallenecek. (aosp/1262743)

Hata Düzeltmeleri

  • PeriodicWorkRequest'lar için geçersiz aralık sürelerini kontrol eden lint kuralı düzeltildi. (aosp/1254846, b/152606442)

Sürüm 2.4.0-alpha01

4 Mart 2020

androidx.work:work-*:2.4.0-alpha01 iptal edilir. 2.4.0-alpha01 sürümü şu commit'leri içerir.

Yeni Özellikler

  • 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şleri yürütmeyi değerlendiriyordu. Artık devam eden zamanlayıcı, PeriodicWorkRequest dahil olmak üzere gelecekte yürütülebilecek WorkRequestleri izler. Devam eden işlemdeki planlayıcı, planlama sınırlarına da uymaz (ancak yine de WorkManager tarafından kullanılan Executor boyutuyla sınırlıdır). Bu sayede uygulama ön planda çalışırken çok daha fazla WorkRequest yürütülebilir. (aosp/1185778)

  • adb shell am broadcast -a "androidx.work.diagnostics.REQUEST_DIAGNOSTICS" -p "<your_app_package_name>" kullanarak WorkManager'dan teşhis bilgisi isteme özelliği eklendi. Bu sayede aşağıdakiler gibi birçok faydalı bilgiye ulaşabilirsiniz:

    • Son 24 saat içinde tamamlanan WorkRequest'ler.
    • Şu anda RUNNING (ÇALIŞIYOR) durumunda olan WorkRequest'ler.
    • Planlanmış İş İstekleri. (aosp/1235501)
  • Aşağıdakileri zorunlu kılan yeni Lint kuralları:

    • setForegroundAsync() API'leri kullanılırken doğru foregroundServiceType kullanımı. (b/147873061, aosp/1215915)
    • JobService API'leri doğrudan kullanırken WorkManager'in kullanması gereken JobScheduler kimliklerini belirtme. (aosp/1223567)

API Değişiklikleri

  • ExistingWorkPolicy.APPEND_OR_REPLACE ekleyin. Bu, APPEND ile benzerdir ancak ön koşulları iptal edilmiş veya başarısız olmuş bir zincirin yerini alır. (b/134613984, aosp/1199640)

  • Gelecekte yürütülmesi gereken WorkRequest'leri izlemek için özel RunnableScheduler ekleme olanağı sunar. Bu, işlem içi zamanlayıcı tarafından kullanılır. (aosp/1203944)

Hata Düzeltmeleri

  • setProgress(), daha önce imkansız bir tür olan Single<Void> döndürdüğü için RxWorker içinde kullanımdan kaldırıldı. Completable yerine setCompletableProgress() döndüren yeni bir API eklendi ve yeni API'lere geçişe yardımcı olan yeni Lint kuralları eklendi. (b/150080946, aosp/1242665)

Sürüm 2.3.4

Sürüm 2.3.4

18 Mart 2020

androidx.work:work-*:2.3.4 iptal edilir. 2.3.4 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • 10 dakikalık yürütme penceresi aşıldıktan sonra uzun süren Worker işlemlerinin birden fazla örneğinin çalışmasına neden olan hata düzeltildi. (aosp/1247484, b/150553353)
  • WorkManager'ın lint IssueRegistry sorunu düzeltildi. Katkısı için Slack'ten @ZacSweers'e teşekkür ederiz. (aosp/1217923)

Sürüm 2.3.3

Sürüm 2.3.3

4 Mart 2020

androidx.work:work-*:2.3.3 iptal edilir. 2.3.3 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • Worker kesintiye uğradığında doğru şekilde yeniden planlanmamasına neden olan hata düzeltildi. (b/150325687, aosp/1246571)

Sürüm 2.3.2

Sürüm 2.3.2

19 Şubat 2020

androidx.work:work-*:2.3.2 yayınlanır. 2.3.2 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • WorkManager'ın nadir durumlarda JobScheduler'daki 100 iş sınırını aşmasına neden olan sorun düzeltildi. (aosp/1226859, b/149092520)
  • ConstraintControllers'daki yarış durumu düzeltildi. (aosp/1220100)
  • Uzun süredir çalışan işçiler için ön plan hizmeti yaşam döngüsü yönetimi iyileştirildi. (aosp/1226295)
  • Uzun süren çalışanlar için bildirimlerin iptalinin, çalışan iptal edildiğinde yönetimi iyileştirildi. (aosp/1228346)

Sürüm 2.3.1

Sürüm 2.3.1

5 Şubat 2020

androidx.work:work-*:2.3.1 iptal edilir. 2.3.1 sürümü şu commit'leri içerir.

Hata düzeltmeleri

  • Ön planda bir Service etkin olduğunda çalışan uzun süreli Worker'lerin yaşam döngüsünü daha iyi yönetin.Notification (aosp/1218539, b/147249312)
  • WorkManager artık androidx.sqlite:sqlite-framework:2.1.0 kararlı sürümüne bağlıdır. (aosp/1217729)
  • ForegroundInfo içinde foregroundServiceType kullanılırken AndroidManifest.xml içinde foregroundServiceType belirtilmesini sağlamak için lint kuralları eklendi. (aosp/1214207, b/147873061)

Sürüm 2.3.0

Sürüm 2.3.0

22 Ocak 2020

androidx.work:work-*:2.3.0, 2.3.0-rc01 tarihinden beri herhangi bir değişiklik yapılmadan yayınlandı. 2.3.0 sürümü şu commit'leri içerir.

2.2.0 sürümünden beri yapılan önemli değişiklikler

  • ListenableWorker#setForegroundAsync() aracılığıyla uzun süren veya önemli işler için destek.
  • ListenableWorker#setProgressAsync() üzerinden çalışan ilerlemesi desteği.
  • WorkManager artık kitaplığın bir parçası olarak ek lint kuralları paketliyor. Bu sayede hatalar erken aşamada yakalanabiliyor.

Sürüm 2.3.0-rc01

8 Ocak 2020

androidx.work:work-*:2.3.0-rc01 iptal edilir. 2.3.0-rc01 sürümü şu commit'leri içerir.

Bu sürüm, 2.3.0-beta02 ile aynıdır.

Hata düzeltmeleri

  • work-testing yapısı artık work-runtime-ktx üzerinde api bağımlılığı tanımlıyor. (aosp/1194410)

Sürüm 2.3.0-beta02

18 Aralık 2019

androidx.work:work-*:2.3.0-beta02 iptal edilir. 2.3.0-beta02 sürümü şu commit'leri içerir.

Yeni özellikler

  • Kurtarılamayan SQLite istisnaları için daha iyi bir hata mesajı eklendi. (aosp/1185777)
  • İsteğe bağlı başlatma kullanılırken içerik sağlayıcının androidx.work.impl.WorkManagerInitializer, AndroidManifest.xml öğesinden kaldırılmasını sağlayan bir lint kuralı eklendi. (aosp/1167007)
  • enqueueUniquePeriodicWork() yerine PeriodicWorkRequest için enqueue() kullanıldığında lint uyarısı eklendi. (aosp/1166032)

API değişiklikleri

  • ForegroundInfo artık ListenableWorker.setForegroundAsync() kullanılırken kullanılacak notificationId değerini belirtmenizi gerektiriyor. Bu, zarar veren bir değişikliktir. Bu sayede, uzun süren birden fazla Worker'yı paralel olarak çalıştırabilirsiniz. WorkManager, sağlanan Notification'lerin kullanım ömrünü de daha iyi yönetir. (b/145473554, aosp/1181208, asop/1181216, asop/1183577)

Hata düzeltmeleri

  • Alarmların doğru şekilde temizlenmemesine neden olan AlarmManager uygulamasındaki hata düzeltildi. (aosp/1156444)
  • Boş bir WorkRequest listesinin yanlış bir WorkContinuation zincirinin oluşturulmasına neden olduğu hata düzeltildi. (b/142835274, aosp/1157051)

Bağımlılık değişiklikleri

  • WorkManager artık Room 2.2.2'yi kullanıyor.

Sürüm 2.3.0-beta01

20 Kasım 2019

androidx.work:work-*:2.3.0-beta01 iptal edilir. 2.3.0-beta01 sürümü şu commit'leri içerir.

Yeni özellikler

  • İsteğe bağlı başlatma kullanılırken androidx.work.Configuration.Provider'nın yanlış uygulanmasından kaynaklanan geliştirici hatalarını önleyen yeni bir lint kuralı eklendi. aosp/1164559

Sürüm 2.3.0-alpha03

23 Ekim 2019

androidx.work:work-*:2.3.0-alpha03 iptal edilir. 2.3.0-alpha03 sürümü şu commit'leri içerir.

Yeni özellikler

  • WorkManager.createCancelPendingIntent() API'si eklendi. Bu API, AndroidManifest.xml'da başka bir bileşen kaydetmek zorunda kalmadan WorkRequest'leri kolayca iptal etmenizi sağlar. Bu API, özellikle WorkRequestsını Notificationsinden iptal etmeyi kolaylaştırır. Bu API'nin 2.3.0 sürümündeki yeni ön plan API'leriyle eşleştirilmesini bekliyoruz.
  • WorkManager artık androidx.room:*:2.2.0 kararlı sürümüne bağlıdır.

API değişiklikleri

  • Temel platform API'leriyle daha tutarlı olması için ForegroundInfo.getNotificationType(), ForegroundInfo.getForegroundServiceType() olarak yeniden adlandırıldı. (b/142729893, aosp/1143316)

Hata düzeltmeleri

  • İşlem dışında setTransactionSuccessful() için gereksiz bir çağrıdan kaynaklanan hata düzeltildi. Bu durum nadir taşıma işlemlerinde görülür. (b/142580433, aosp/1141737)

Sürüm 2.3.0-alpha02

9 Ekim 2019

androidx.work:work-*:2.3.0-alpha02 iptal edilir. 2.3.0-alpha02 sürümü şu commit'leri içerir.

Yeni özellikler

  • WorkManager artık uzun süren veya işletim sistemi tarafından etkin tutulması gereken önemli işlerin çalıştırılmasını destekliyor. Daha fazla bilgi için ListenableWorker#setForegroundAsync() (veya Kotlin için CoroutineWorker#setForeground()) sayfasına bakın. (aosp/1133636)

API değişiklikleri

  • Data içindeki containsKey API'sinin adı hasKeyWithValueOfType olarak değiştirildi. ktx kitaplığındaki ilgili uzantı yöntemi de yeniden adlandırıldı. (b/141916545)

Hata düzeltmeleri

  • WorkManager, sıraya alınan WorkRequest sayısı planlama sınırlarına yaklaştığında işleri adil bir şekilde planlar. (aosp/1105766)
  • WorkManager, ListenableWorker#onStopped() işi tamamlanmamışsa çağırır. (b/140055777)
  • WorkManager artık bir çalışan kesintiye uğradığında veya son durumuna ulaştığında ilerleme bilgilerini kaldırıyor. (aosp/1114572)
  • Data artık çok daha kullanışlı bir toString()görünüme sahip. (b/140945323)
  • Data artık daha iyi bir equals() yönteme sahip. Ayrıca, Array türleri için deepEquals özelliğini de destekler. (b/140922528)
  • WorkManager artık dahili veritabanını ve tercih dosyalarını yedeklenmeyen bir dizinde saklıyor. (b/114808216)

Sürüm 2.3.0-alpha01

22 Ağustos 2019

androidx.work:work-*:2.3.September 5, 20190-alpha01 iptal edilir. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.

Yeni özellikler

  • ListenableWorker artık setProgressAsync() API'si aracılığıyla ilerleme durumunu ayarlayabilir. Ayrıca, CoroutineWorker'de ilgili bir suspend-ing setProgress API'si ve RxWorker'de Single<Void> döndüren bir setProgress eklendi. Bu yeni API'ler sayesinde Workers, WorkInfo üzerinden ilerleme bilgilerini iletebilir. WorkInfo'nın karşılık gelen bir getProgress API'si vardır. (b/79481554)
  • Data, Worker'ye giriş verilerinin beklenen türde anahtarlara sahip olduğunu doğrulamak için kullanılabilecek bir containsKey() API'sine sahiptir. (b/117136838)
  • Data artık Data.toByteArray() ve Data.fromByteArray() kullanılarak serileştirilebilir. Data ile ilgili sürüm oluşturma garantisi olmadığını, bu nedenle kalıcı hale getirmemeniz veya uygulamalar arasında IPC için kullanmamanız gerektiğini unutmayın. Yalnızca aynı uygulamanın birden fazla işlemi arasında güvenle kullanılabilir.
  • InputMergerFactory öğesini Configuration.setInputMergerFactory aracılığıyla belirtme özelliği eklendi. (b/133273159)

API değişiklikleri

  • WorkManager, daha önce çağrılmış bir ListenableWorker örneği döndüren bir WorkerFactory varsa IllegalStateException örneği oluşturur. (b/139554406)
  • ListenableFuture iptali ve ListenableWorker'deki onStopped() geri arama özelliğiyle ilgili doküman güncellemeleri. (b/138413671)

Hata düzeltmeleri

  • Devam eden planlayıcı artık idle kısıtlaması olan WorkRequestleri yoksayıyor. Bu istekler artık yalnızca cihaz gerçekten idle olduğunda JobScheduler tarafından alınır. (aosp/1089779)
  • TestScheduler artık testlerde dahili görev yürütücüsü için belirtilen Executor'yi doğru şekilde kullanıyor. (aosp/1090749)

Sürüm 2.2.0

Sürüm 2.2.0

15 Ağustos 2019

androidx.work:work-*:2.2.0 iptal edilir. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.

Bu sürüm, androidx.work:work-*:2.2.0-rc01 ile aynı.

2.2.0 sürümünde 2.1.0 sürümüne kıyasla yapılan önemli değişiklikler

androidx.work:work-gcm:2.2.0, Google Play Hizmetleri'nin API düzeyleri <= 22 için kullanılabildiği durumlarda GCMNetworkManager'ın planlayıcı olarak kullanılmasını destekleyen yeni bir Maven yapısıdır. Bu, eski API sürümlerinde daha güvenilir ve performanslı arka plan işlemleri yapılmasına yardımcı olan isteğe bağlı bir bağımlılıktır. Uygulamanız Google Play Hizmetleri'ni kullanıyorsa GCMNetworkManager desteğini otomatik olarak almak için bu bağımlılığı Gradle dosyanıza ekleyin. Play Hizmetleri kullanılamıyorsa WorkManager, eski cihazlarda AlarmManager'ı kullanmaya devam eder.

Sürüm 2.2.0-rc01

30 Temmuz 2019

androidx.work:work-*:2.2.0-rc01 iptal edilir. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.

Hata düzeltmeleri

  • AlarmManager uygulamasında, hizmetin erken kapanmasına ve nadir durumlarda RejectedExecutionException ile sonuçlanmasına neden olan bir hata düzeltildi. (aosp/1092374) (b/138238197).
  • Bazı cihazlarda JobScheduler API'leri kullanılırken NullPointerException ile ilgili geçici çözüm eklendi. (aosp/1091020) (b/138364061), (b/138441699)

Sürüm 2.2.0-beta02

19 Temmuz 2019

androidx.work:work-*:2.2.0-beta02 iptal edilir. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.

Hata düzeltmeleri

  • 2.2.0-beta01 sürümünde eklenen, istenmeyen Jacoco bağımlılığı kaldırıldı.

Sürüm 2.2.0-beta01

17 Temmuz 2019

androidx.work:work-*:2.2.0-beta01 iptal edilir. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.

Yeni özellikler

  • androidx.work:work-gcm:2.2.0-beta01, Google Play Hizmetleri'nin API düzeyleri <= 22 için kullanılabildiği durumlarda GCMNetworkManager'ın planlayıcı olarak kullanılmasını destekleyen yeni bir Maven yapısıdır. Bu, eski API sürümlerinde daha güvenilir ve yüksek performanslı arka plan işlemleri yapılmasına yardımcı olan isteğe bağlı bir bağımlılıktır. Uygulamanız Google Play Hizmetleri'ni kullanıyorsa GCMNetworkManager desteğini otomatik olarak almak için bu bağımlılığı Gradle dosyanıza ekleyin. Play Hizmetleri kullanılamıyorsa WorkManager, eski cihazlarda AlarmManager'ı kullanmaya devam eder.

Hata düzeltmeleri

  • Nvidia Shield K1 tabletlerde ağ durumu izlenirken oluşan IllegalArgumentException sorunu düzeltildi. (aosp/1010188)

Sürüm 2.1.0

Sürüm 2.1.0

11 Temmuz 2019

androidx.work:work-*:2.1.0 iptal edilir. Bu sürüm, androidx.work:work-*:2.1.0-rc01 ile aynı.

2.0.1 sürümünden beri yapılan önemli değişiklikler

  • work-runtime-ktx artık Java 8'i gerektiriyor. Herhangi bir sorunla karşılaşırsanız build.gradle bölümüne aşağıdakileri ekleyebilirsiniz: kotlinOptions { jvmTarget = "1.8" }
  • WorkManager için isteğe bağlı başlatma eklendi. Bu sayede WorkManager yalnızca referans verildiğinde oluşturulur. b/127497100 Projenizi isteğe bağlı başlatma için ayarlamak üzere:
    1. Otomatik başlatıcıyı devre dışı bırakın.
    2. Özel Application nesnenizde Configuration.Provider'i uygulayın.
    3. WorkManager.getInstance() ile ilgili tüm referansları WorkManager.getInstance(Context) olarak değiştirin. Bu değişiklik kapsamında WorkManager.getInstance() desteğini sonlandırdık. İsteğe bağlı başlatma işlemi yapmıyor olsanız bile yeni WorkManager.getInstance(Context) yerine her zaman arama yapmak daha güvenlidir.
  • PeriodicWorkRequest artık başlangıç gecikmelerini destekliyor. Başlangıçta gecikme ayarlamak için PeriodicWorkRequest.Builder üzerinde setInitialDelay yöntemini kullanabilirsiniz. b/111404867
  • WorkerFactory kullanılarak bir veya daha fazla kayıtlı DelegatingWorkerFactory'ye yetki verme özelliği eklendi. b/131435993
  • WorkManager'ın Executor aracılığıyla tüm dahili kayıtları için kullandığı Configuration.Builder.setTaskExecutor özelleştirme özelliği eklendi.
  • Worker ve ListenableWorker sınıflarını work-testing yapısında TestWorkerBuilder ve TestListenableWorkerBuilder kullanarak birim testi yapılabilir şekilde oluşturma özelliği eklendi.
    • work-testing artık Kotlin'i bağımlılık olarak çektiğini ve varsayılan olarak çeşitli Kotlin uzantıları içerdiğini unutmayın.
  • WorkInfo için çalıştırma denemesi sayısı eklendi. b/127290461
  • Data türleri artık baytları ve bayt dizilerini depolayıp alabilir. Bu, Data nesnelerinin maksimum boyutunu DEĞİŞTİRMEZ.
  • WorkManager artık Room 2.1.0'a bağlıdır. Bu, bazı veritabanı sorunlarını düzeltmelidir.

Sürüm 2.1.0-rc01

27 Haziran 2019

androidx.work:work-*:2.1.0-rc01 iptal edilir. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.

Hata düzeltmeleri

  • Yedekleme işlemi devam ederken JobScheduler ile işler yürütülürken uygulamanın kilitlenmesine neden olan hata düzeltildi b/135858602.

Sürüm 2.1.0-beta02

20 Haziran 2019

androidx.work:work-*:2.1.0-beta02 iptal edilir. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.

Hata düzeltmeleri

  • TestListenableWorkerBuilder artık ListenableWorker örnekleri oluştururken doğru WorkerFactory kullanıyor. b/135275844
  • İşlem sonlandırma nedeniyle WorkRequest için yürütme pencerelerinde kaymalara neden olan hata düzeltildi. b/135272196

Sürüm 2.1.0-beta01

13 Haziran 2019

androidx.work:work-*:2.1.0-beta01 iptal edilir. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.

Hata düzeltmeleri

  • WorkManager artık Room 2.1.0'a bağlıdır. Bu, bazı veritabanı sorunlarını düzeltmelidir.
  • Ana iş parçacığında bazı başlangıç diski G/Ç işlemleri kaldırıldı.
  • Kısıtlama izlemede olası bir kilitlenme düzeltildi. b/134361006
  • WorkManager'a atfedilen geçersiz işler önceden iptal edildi. b/134058261
  • Yanlış davranan cihazlar için JobScheduler API'lerine bazı koruyucu çağrılar eklendi.

Sürüm 2.1.0-alpha03

5 Haziran 2019

androidx.work:*:2.1.0-alpha03 iptal edilir.

Hata düzeltmeleri

  • PeriodicWorkRequest ile ilgili dokümanlar iyileştirildi.
  • WorkManagerTestInitHelper artık testler için doğru arka plan yürütücüsünü kullanıyor.
  • Bazı cihazlarda büyük işlemler yapılırken karşılaşılan SQLite sorunları düzeltildi. (b/130182503)
  • WorkManager'ın bağımlılıkları artık daha ayrıntılı. (b/133169148).
  • WorkManager'ı kullanarak iş planlarken JobScheduler'ın uygulanmasındaki OEM'e özgü hatalar için geçici çözümler.
  • Daha önce nadir çökmelere neden olan hizmet ömürleriyle ilgili AlarmManager tabanlı zamanlayıcıda iyileştirmeler yapıldı. (b/133313734)

Sürüm 2.1.0-alpha02

16 Mayıs 2019

WorkManager 2.1.0-alpha02 yayınlandı. Bu sürümde çeşitli yeni API'ler yer almaktadır.

API Değişiklikleri

  • PeriodicWorkRequest artık başlangıç gecikmelerini destekliyor. Başlangıçta gecikme ayarlamak için PeriodicWorkRequest.Builder üzerinde setInitialDelay yöntemini kullanabilirsiniz. b/111404867

  • WorkerFactory kullanılarak bir veya daha fazla kayıtlı DelegatingWorkerFactory'ye yetki verme özelliği eklendi. b/131435993

  • WorkManager'ın Executor aracılığıyla tüm dahili kayıtları için kullandığı Configuration.Builder.setTaskExecutor özelleştirme özelliği eklendi.

  • WorkRequest.keepResultsForAtLeast (b/130638001), isteğe bağlı başlatma ve PeriodicWorkRequest.Builder (b/131711394) ile ilgili dokümanlar iyileştirildi.

Sürüm 2.1.0-alpha01

24 Nisan 2019

WorkManager 2.1.0-alpha01 yayınlandı. Bu sürümde çeşitli yeni API'ler yer almaktadır. Bu sürümden itibaren, 1.x sürümüne geri aktarılmayacak yeni özellikler olacağını lütfen unutmayın. 2.x'e geçmenizi öneririz.

API Değişiklikleri

  • WorkManager için isteğe bağlı başlatma eklendi. Bu sayede WorkManager yalnızca referans verildiğinde oluşturulur. b/127497100 Projenizi isteğe bağlı başlatma için ayarlamak üzere:
    1. Otomatik başlatıcıyı devre dışı bırakın.
    2. Özel Application nesnenizde Configuration.Provider'i uygulayın.
    3. WorkManager.getInstance() ile ilgili tüm referansları WorkManager.getInstance(Context) olarak değiştirin. Bu değişiklik kapsamında WorkManager.getInstance() desteğini sonlandırdık. İsteğe bağlı başlatma işlemi yapmıyor olsanız bile yeni WorkManager.getInstance(Context) yerine her zaman arama yapmak daha güvenlidir.
  • Worker ve ListenableWorker sınıflarını work-testing yapısında TestWorkerBuilder ve TestListenableWorkerBuilder kullanarak birim testi yapılabilir şekilde oluşturma özelliği eklendi.
    • work-testing artık bağımlılık olarak Kotlin'i kullandığını ancak varsayılan olarak çeşitli Kotlin uzantılarını da içerdiğini unutmayın.
  • WorkInfo için çalıştırma denemesi sayısı eklendi. b/127290461
  • Data türleri artık baytları ve bayt dizilerini depolayıp alabilir. Bu, Data nesnelerinin maksimum boyutunu DEĞİŞTİRMEZ.
  • CoroutineWorker.coroutineContext kullanımdan kaldırıldı. Bu alan yanlışlıkla CoroutineDispatcher olarak yazılmış. Askıya alma işlevinin gövdesinde istediğiniz coroutineContext'e kendiniz gidebileceğiniz için artık bu alana ihtiyacınız yok.
  • RxWorker.createWork() ve RxWorker.getBackgroundScheduler() artık @NonNull iade türleriyle açıklama eklenmiş olarak gösteriliyor.

Sürüm 2.0.1

Sürüm 2.0.1

9 Nisan 2019

WorkManager 2.0.1 yayınlandı. Bu sürüm, 2.0.1-rc01 ile aynıdır.

Sürüm 2.0.1-rc01

3 Nisan 2019

WorkManager 2.0.1-rc01 yayınlandı. Bu sürümde bazı hata düzeltmeleri yapıldı. Eski 1.x kullanıcıları için bu değişikliklerin bazıları 1.0.1-rc01 sürümünde de görünür.

Hata Düzeltmeleri

  • Robolectric testleri artık WorkManager ile düzgün şekilde çalışıyor. b/122553577
  • JobScheduler API'lerinden önceki sürümlerde kısıtlama izlemenin temizlenmemesi nedeniyle oluşan nadir bir kilitlenme sorunu düzeltildi. b/129226383
  • Uzun iş zincirleriyle ilgili StackOverflowError düzeltildi. b/129091233
  • PeriodicWorkRequest ile ilgili dokümanlar, esnek çalışma saatlerinin API 23'te desteklenmediğini belirtecek şekilde güncellendi.
  • Kotlin belgelerindeki bazı bozuk bağlantılar düzeltildi.

Sürüm 2.0.0

Sürüm 2.0.0

20 Mart 2019

WorkManager 2.0.0 yayınlandı. Bu sürüm, 2.0.0-rc01 ile aynıdır ve AndroidX bağımlılıklarına sahip 1.0.0 kararlı sürümünün AndroidX sürümüdür. Eski 1.x sürümleri yerine bu sürümü hedeflemenizi öneririz. Tüm etkin geliştirme çalışmaları 2.x'i hedefleyecek ve 1.x yalnızca sınırlı bir süre boyunca kritik hata düzeltmeleri alacak.

Sürüm 2.0.0-rc01

7 Mart 2019

WorkManager 2.0.0-rc01 yayınlandı. Bu sürüm, 1.0.0 kararlı sürümüyle aynıdır ancak AndroidX bağımlılıkları içerir. Bu sürüm 2.0.0 kararlı sürümüne ulaştığında bu sürümü eklemeniz gerekir. Eski 1.x sürümleri yalnızca bazı kritik hata düzeltmelerini alır. Tüm etkin geliştirme çalışmaları 2.x'i hedefleyecektir.

AndroidX Öncesi Bağımlılıklar

Kotlin uzantılarını kullanma hakkında bilgi edinmek için KTX dokümanlarına bakın.
Referans belgeleri: Java

Groovy

dependencies {
    def work_version = "1.0.1"

    // (Java only)
    implementation "android.arch.work:work-runtime:$work_version"

    // Kotlin + coroutines
    implementation "android.arch.work:work-runtime-ktx:$work_version"

    // optional - RxJava2 support
    implementation "android.arch.work:work-rxjava2:$work_version"
    // optional - Test helpers
    androidTestImplementation "android.arch.work:work-testing:$work_version"
}

Kotlin

dependencies {
    val work_version = "1.0.1"

    // (Java only)
    implementation("android.arch.work:work-runtime:$work_version")

    // Kotlin + coroutines
    implementation("android.arch.work:work-runtime-ktx:$work_version")

    // optional - RxJava2 support
    implementation("android.arch.work:work-rxjava2:$work_version")

    // optional - Test helpers
    androidTestImplementation("android.arch.work:work-testing:$work_version")
}

Sürüm 1.0.1

Sürüm 1.0.1

9 Nisan 2019

WorkManager 1.0.1 yayınlandı. Bu sürüm, 1.0.1-rc01 ile aynıdır.

1.x dalında çok az güncelleme yapılacağından kullanıcıları WorkManager 2.x'e güncellemeye şiddetle teşvik ettiğimizi lütfen unutmayın. 1.x kitaplığı için yeni API'ler de yayınlanmayacaktır.

Sürüm 1.0.1-rc01

2 Nisan 2019

WorkManager 1.0.1-rc01 yayınlandı. Bu sürümde bazı hata düzeltmeleri yapıldı.

Hata Düzeltmeleri

  • Robolectric testleri artık WorkManager ile düzgün şekilde çalışıyor. b/122553577
  • JobScheduler API'lerinden önceki sürümlerde kısıtlama izlemenin temizlenmemesi nedeniyle oluşan nadir bir kilitlenme sorunu düzeltildi. b/129226383
  • Uzun iş zincirleriyle ilgili StackOverflowError düzeltildi. b/129091233

Sürüm 1.0.0

Sürüm 1.0.0

5 Mart 2019

Bu, WorkManager'ın 1.0.0 kararlı sürümüdür. WorkManager'ın bu sürümü, 1.0.0-rc02 sürümüyle aynıdır.

Sürüm 1.0.0-rc02

21 Şubat 2019

Bu, WorkManager'ın 1.0.0 kararlı sürümünün ikinci sürüm adayıdır. Bu sürümde iki hata düzeltmesi yer almaktadır.

Hata Düzeltmeleri

  • Worker artık uygulama kilitlendikten sonra doğru şekilde planlanıyor. b/124546316

  • Workers that throw an unchecked Exception are now correctly marked as FAILED and no longer crash the app process.

Sürüm 1.0.0-rc01

14 Şubat 2019

Bu, WorkManager'ın 1.0.0 kararlı sürümünün sürüm adayıdır. Bu sürümde bir hata düzeltmesi yer almaktadır.

Hata Düzeltmeleri

  • AlarmManager'a dayalı uygulama artık PeriodicWorkRequest'ler için flex pencerelerine doğru şekilde uyuyor. b/124274584

Sürüm 1.0.0-beta05

6 Şubat 2019

Bu sürümde bazı hata düzeltmeleri yer almaktadır.

Hata Düzeltmeleri

  • API 23'te JobScheduler.getPendingJob(...) kullanıldığı durum düzeltildi. b/123893059
  • Android 5.1 (API düzeyi 22) veya önceki sürümlerin yüklü olduğu cihazlarda NullPointerException sorunu düzeltildi. b/123835104

Sürüm 1.0.0-beta04

4 Şubat 2019

Bu sürümde bazı hata düzeltmeleri yer almaktadır.

Hata Düzeltmeleri

  • AlarmManager tabanlı uygulama için PeriodicWork'ün planlanması iyileştirildi.
  • AlarmManager tabanlı uygulama kullanılırken WorkManager'ın kısıtlamaları doğru şekilde izleyememesine neden olan sorun düzeltildi. b/123379508
  • AlarmManager tabanlı uygulama kullanılırken WorkManager'ın işlem sonlandığında çalışmayı yeniden denemediği durum düzeltildi. b/123329850
  • AlarmManager tabanlı uygulama kullanılırken WorkManager'ın Wakelock'ları sızdırmasına neden olan durum düzeltildi.

Sürüm 1.0.0-beta03

25 Ocak 2019

Bu sürümde bazı hata düzeltmeleri yer almaktadır.

Hata Düzeltmeleri

  • Bazı durumlarda işlerin düzgün şekilde yürütülmemesine neden olan bir gerileme 1.0.0-beta02 ile karşılaştık. b/123211993
  • Geri çekilme zamanlamasının düzgün şekilde uygulanmadığı durum düzeltildi. b/122881597
  • Android 5.1 (API veya daha eski bir sürümü çalıştıran cihazlarda ConcurrentModificationException düzeltildi. Bu, 1.0.0-beta02 sürümündeki düzeltmenin devamıdır. b/121345393
  • Manifest dosyamızda bu ek açıklamanın eksik olduğu bazı bileşenler için exported=false eklendi.
  • WorkManager'ın işletim sistemiyle nasıl etkileşime girdiği hakkında bilgiler paket düzeyindeki dokümanlara eklendi.

Sürüm 1.0.0-beta02

15 Ocak 2019

Bu sürümde bazı hata düzeltmeleri yer almaktadır.

Hata Düzeltmeleri

  • Android 6.0 (API düzeyi 23) çalıştıran cihazlarda periyodik çalışmanın aralık başına birden fazla kez çalışabildiği uç durum düzeltildi. b/121998363
  • Android 5.1 (API düzeyi 22) veya daha eski sürümleri çalıştıran cihazlarda ConcurrentModificationException sorunu düzeltildi. b/121345393
  • Android 5.1 (API düzeyi 22) veya önceki sürümlerin yüklü olduğu cihazlarda kısıtlamalar karşılanmadığında işin hatalı şekilde yürütülmesi sorunu düzeltildi. b/122578012
  • Bazı sıra dışı durumlarda daha hızlı olması için optimize edilmiş iş tamamlama işleme. b/122358129
  • WorkManager'ın kullandığı birden fazla LiveData örneği arasındaki olası yarış durumlarını ele almak için bir değişiklik eklendi.
  • 1.1.1-rc01 yerine Room bağımlılığı 1.1.1 kullanılmaya başlandı. Bu sürümler aynıdır. b/122578011

Sürüm 1.0.0-beta01

19 Aralık 2018

Bu sürümde API değişikliği yoktur. Kritik bir sorun olmadığı sürece WorkManager'ın bir sonraki sürüme kadar API kararlılığını koruması beklenmektedir. Bu sürümde bazı hata düzeltmeleri yer almaktadır.

Hata Düzeltmeleri

  • Başarıyla tamamlanan üst öğe işinde daha önce iptal edilmiş alt öğeler artık çalışmayacak. b/120811767
  • Günlük kaydı sınıfları düzgün şekilde başlatılır (öncelikle testler sırasında ortaya çıkar).

Sürüm 1.0.0-alpha13

12 Aralık 2018

Bu sürümde, bazı Kotlin kullanıcıları için faydalı olacak küçük bir API değişikliği yapıldı.

API Değişiklikleri

  • androidx.work.Result, ListenableWorker sınıfının iç sınıfı olarak taşındı. Bu, yeniden düzenlemenin Kotlin'in üst düzey Result sınıfıyla çakışmasını önler. Bu, API'de yapılan ve geriye dönük uyumluluğu bozan bir değişikliktir. b/120564418

API'de yapılan, geriye dönük uyumluluğu bozan değişiklikler

  • androidx.work.Result, ListenableWorker sınıfının iç sınıfı olarak taşındı.

Sürüm 1.0.0-alpha12

5 Aralık 2018

Bu sürüm, API'de bazı zarar veren değişiklikler içerir. Lütfen aşağıdaki Zarar Veren API Değişiklikleri bölümüne bakın. Bu sürümün ilk beta sürümümüz olarak yayınlanması bekleniyor. alpha12 ayrıca kapsamlı doküman güncellemeleri de içerir.

API Değişiklikleri

  • Yeni bir yapı olan work-rxjava2, RxWorker özelliğini sunuyor. Bu, Single<Payload> bekleyen bir ListenableWorker.
  • Firebase JobDispatcher'ın desteği, kullanımdan kaldırılacak olması nedeniyle sonlandırıldı. Bu nedenle, beta sürümüne geçiş yaparken work-firebase yapısı artık güncellenmeyecek. Gelecekte alternatif bir yöntem eklemeyi planlıyoruz.
  • Payload, Result ile birleştirildi. Result artık üç somut uygulamaya sahip bir "sealed class" olup Result.success() (veya Result.success(Data)), Result.failure() (veya Result.failure(Data)) ve Result.retry() aracılığıyla elde edilebilir. ListenableFuture artık Payload yerine Result ile sonuçlanıyor. Worker, Data çıkışı için getter ve setter yöntemlerine sahip değil. Bu, zarar veren bir değişikliktir.
  • Yavaş tetiklenen içerik URI'lerini daha iyi desteklemek için Constraints.Builder.setTriggerContentMaxDelay(long, TimeUnit) ve Constraints.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() ve ListenableFuture.await() Kotlin uzantısı yöntemleri eklendi.
  • Operation.getException(), Operation.getThrowable() olarak yeniden adlandırıldı. Bu, zarar veren bir değişikliktir.
  • ContentUriTriggers sınıfı ve onu referans alan yöntemler artık herkese açık olarak kullanılamaz. Bu, zarar veren bir değişikliktir.
  • API'yi kolaylaştırmak için WorkManager, WorkContinuation ve OneTimeWorkRequest içindeki diğer varargs yöntemleri kaldırıldı. Derlemeyle ilgili sorunları düzeltmek için mevcut varargs'larınızı Arrays.asList(...) ile sarmalayabilirsiniz. Her yöntemin tek bağımsız değişkenli sürümlerini eklemeye devam ediyoruz. Bu, zarar veren bir değişikliktir.
  • WorkContinuation.combine(OneTimeWorkRequest, *) varyant kaldırıldı. Kafa karıştırıcı bir API sunuyorlardı. Mevcut combine yöntemleri daha anlaşılır. Bu, zarar veren bir değişikliktir.

Hata Düzeltmeleri

  • Marshmallow öncesi uygulamalar, halihazırda yürütülen bir görevin işlem ölümünden kurtulma konusunda artık daha güvenilirdir.
  • LiveData, observeForever üzerinden gözlemlenir ve WorkManager aracılığıyla izlenir. Bu, Room kitaplığındaki bir düzeltmenin geriye dönük bağlantı noktasıdır. b/74477406
  • Serileştirilmiş nesne maksimum boyutunu aşıyorsa Data.Builder.build() artık istisna oluşturuyor. Bu durum daha önce yalnızca arka plan iş parçacığında meydana geliyordu ve bu nedenle düzgün şekilde ele alınamıyordu.
  • Durdurulan ve iptal edilen çalışmalar daha net şekilde ayırt edilecek. getWorkInfoById(), ListenableWorker.onStopped() sırasında CANCELLED State ile birlikte WorkInfo döndürecek.
  • null Result'lerini ListenableWorker'de hata olarak değerlendirin. b/120362353
  • Bazen IllegalArgumentException hatası veren API 24'ü çalıştıran Shield Tablet'ler için deneysel düzeltme. b/119484416

API'de yapılan, geriye dönük uyumluluğu bozan değişiklikler

  • Firebase JobDispatcher'ın desteği, kullanımdan kaldırılacak olması nedeniyle sonlandırıldı. Bu nedenle, beta sürümüne geçiş yaparken work-firebase yapısı artık güncellenmeyecek. Gelecekte alternatif bir yöntem eklemeyi planlıyoruz.
  • Payload, Result ile birleştirildi. Result artık üç somut uygulamaya sahip bir "sealed class" olup Result.success() (veya Result.success(Data)), Result.failure() (veya Result.failure(Data)) ve Result.retry() aracılığıyla elde edilebilir. ListenableFuture artık Payload yerine Result ile sonuçlanıyor. Worker, Data çıkışı için getter ve setter yöntemlerine sahip değil.
  • Operation.await() ve ListenableFuture.await() Kotlin uzantısı yöntemleri eklendi.
  • Operation.getException(), Operation.getThrowable() olarak yeniden adlandırıldı.
  • ContentUriTriggers sınıfı ve onu referans alan yöntemler artık herkese açık olarak kullanılamaz.
  • API'yi kolaylaştırmak için WorkManager, WorkContinuation ve OneTimeWorkRequest içindeki diğer varargs yöntemleri kaldırıldı. Derlemeyle ilgili sorunları düzeltmek için mevcut varargs'larınızı Arrays.asList(...) ile sarmalayabilirsiniz. Her yöntemin tek bağımsız değişkenli sürümlerini eklemeye devam ediyoruz.
  • WorkContinuation.combine(OneTimeWorkRequest, *) varyant kaldırıldı. Kafa karıştırıcı bir API sunuyorlardı. Mevcut combine yöntemleri daha anlaşılır.

Sürüm 1.0.0-alpha11

8 Kasım 2018

Bu sürümde, beta tarihinde kararlı API olacak birçok değişiklik yer almaktadır. Bu sürümde API'de zarar veren değişiklikler var. Lütfen aşağıdaki API'de Zarar Veren Değişiklikler bölümüne bakın.

API Değişiklikleri

  • work-runtime-ktx, yeni bir CoroutineWorker sunuyor.
  • WorkStatus, WorkInfo olarak yeniden adlandırıldı. İlgili tüm getStatus yöntemi varyantlarının adı, ilgili getWorkInfo varyantları olarak değiştirildi. Bu, zarar veren bir değişikliktir.
  • ListenableWorker.onStopped() artık WorkRequest iptal edilip edilmediğini gösteren bir boole bağımsız değişkeni kabul etmiyor. WorkManager artık bu ayrımı yapmıyor. Bu, zarar veren bir değişikliktir.
  • androidx.work.test paketi, androidx.work.testing paketi olarak yeniden adlandırıldı. Bu, zarar veren bir değişikliktir.
  • Constraints üzerindeki ayarlayıcılar artık herkese açık API'nin bir parçası değildir. Bu, zarar veren bir değişikliktir.
  • WorkerParameters.getTriggeredContentUris() ve WorkerParameters.getTriggeredContentAuthorities() daha önce diziler döndürdü. Bu yöntemler artık Koleksiyonlar döndürüyor. Bu, zarar veren bir değişikliktir.
  • ListenableWorker.onStartWork(), ListenableWorker.startWork() olarak yeniden adlandırıldı. Bu, zarar veren bir değişikliktir.
  • WorkStatus için oluşturucu artık herkese açık API'nin bir parçası değil. Bu, zarar veren bir değişikliktir.
  • Configuration.getMaxJobSchedulerID() ve Configuration.getMinJobSchedulerID(), sırasıyla Configuration.getMinJobSchedulerId() ve Configuration.getMaxJobSchedulerId() olarak yeniden adlandırılır. Bu, zarar veren bir değişikliktir.
  • API'nin ergonomisini iyileştirmek için herkese açık API'ye çok sayıda @NonNull notu eklendi.
  • WorkManager.enqueueUniqueWork() oluşturmadan benzersiz OneTimeWorkRequest'leri sıraya almak için WorkManager.enqueueUniqueWork() API'sini ekleyin.WorkContinuation
  • WorkManager üzerindeki enqueue ve cancel yöntemlerinin tüm varyantları artık yeni bir Operation türü döndürüyor. Bu, zarar veren bir değişikliktir.
  • enqueue'nın tüm varyantları artık WorkRequest'ler için varargs'ı kabul etmiyor. Bu, zarar veren bir değişikliktir. Bunun yerine Koleksiyonlar'ı kullanın. Mevcut kodu değiştirmek için Arrays.asList() simgesini kullanabilirsiniz. Bunu, API yüzeyini ve yöntem sayısını azaltmak için yaptık.
  • Bir işlem sırasında initialize WorkManager işlemini birden fazla kez denemek artık IllegalStateException ile sonuçlanacak. Bu, zarar veren bir değişikliktir.

Hata Düzeltmeleri

  • work-runtime-ktx yapıtındaki WorkRequest.Builder artık ListenableWorker kullanıyor. b/117666259 numaralı hata düzeltildi.
  • PeriodicWork için bir sonraki çalıştırma zamanının gelecekte olduğundan emin olun. b/118204399 numaralı hata düzeltildi.
  • Uygulama başlatılırken WorkManager kullanılırken olası disk G/Ç'sini kaldırın. b/117796731 numaralı hata düzeltildi.
  • WorkConstraintsTracker içinde yarışma durumunu düzeltin. android-workmanager/issues/56 sorunu düzeltildi.

API'de yapılan, geriye dönük uyumluluğu bozan değişiklikler

  • WorkStatus, WorkInfo olarak yeniden adlandırıldı. İlgili tüm getStatus yöntemi varyantlarının adı, ilgili getWorkInfo varyantları olarak değiştirildi.
  • ListenableWorker.onStopped() artık WorkRequest iptal edilip edilmediğini gösteren bir boole bağımsız değişkeni kabul etmiyor. WorkManager artık bu ayrımı yapmıyor.
  • androidx.work.test paketi, androidx.work.testing paketi olarak yeniden adlandırıldı.
  • Constraints üzerindeki ayarlayıcılar artık herkese açık API'nin bir parçası değildir.
  • WorkerParameters.getTriggeredContentUris() ve WorkerParameters.getTriggeredContentAuthorities() daha önce diziler döndürdü. Bu yöntemler artık Koleksiyonlar döndürüyor.
  • ListenableWorker.onStartWork(), ListenableWorker.startWork() olarak yeniden adlandırıldı.
  • WorkStatus için oluşturucu artık herkese açık API'nin bir parçası değil.
  • Configuration.getMaxJobSchedulerID() ve Configuration.getMinJobSchedulerID(), sırasıyla Configuration.getMinJobSchedulerId() ve Configuration.getMaxJobSchedulerId() olarak yeniden adlandırılır.
  • WorkManager üzerindeki enqueue ve cancel yöntemlerinin tüm varyantları artık yeni bir Operation türü döndürüyor.
  • enqueue'nın tüm varyantları artık WorkRequest'ler için varargs'ı kabul etmiyor.
  • Bir işlem sırasında initialize WorkManager işlemini birden fazla kez denemek artık IllegalStateException ile sonuçlanacak.

Sürüm 1.0.0-alpha10

11 Ekim 2018

Bu sürüm, geliştirici tarafından kontrol edilen asenkron çalışmayı destekler. Bu sürümde API'de zarar veren değişiklikler var. Lütfen aşağıdaki API'de Zarar Veren Değişiklikler bölümüne bakın.

WorkManager'ın alfa döneminin son aşamalarına girdiğini tahmin ediyoruz. Beta sürümünde API'nin kararlı olmasını bekliyoruz. Bu nedenle, lütfen sorun izleyicimizde geri bildiriminizi göndermek için biraz zaman ayırın.

API Değişiklikleri

  • Önceden kullanılan tüm deprecated yöntemleri ve sınıfları (özellikle varsayılan Worker oluşturucu) kaldırıldı. Bu, API'de yapılan ve geriye dönük uyumluluğu bozan bir değişikliktir.
  • NonBlockingWorker sınıfını ListenableWorker olarak yeniden adlandırdı. Bu sınıf artık gizli olmayan bir herkese açık sınıf ve kullanıma hazır.
    • ListenableWorker, ana iş parçacığında çağrılan ListenableFuture<Payload> onStartWork() adlı bir soyut yönteme erişim sağlar. Çalışmayı başlatmak ve eşzamansız olarak işlemek sizin sorumluluğunuzdadır. İşlem tamamlandığında ListenableFuture öğesini uygun şekilde güncellemeniz gerekir. ListenableFuture referans uygulamaları, alpha02 içindeki Futures paketinde sağlanır (WorkManager bölümünün altına bakın).
    • Worker, ListenableWorker'yi genişletir ve soyut bir Result doWork() yöntemiyle eskisi gibi çalışmaya devam eder.
    • Worker'daki bazı yöntemler ve üyeler ListenableWorker'a taşındı.
    • Yakında, Kotlin eşzamanlı rutinlerini (kararlı sürümler yayınlandıktan sonra) ve RxJava2'yi kullanan ListenableWorker için referans uygulamalar sunacağız.
  • Arayüz WorkerFactory ve somut uygulama DefaultWorkerFactory, WorkerFactory adlı bir soyut sınıfta birleştirildi. Uygulama, kullanıcı tarafından oluşturulan tüm WorkerFactory örnekleri için son çare olarak varsayılan yansıtma tabanlı davranışın çağrılmasını sağlar. Bu, zarar veren bir değişikliktir.
  • WorkManager.synchronous() ve WorkContinuation.synchronous() ile ilgili tüm yöntemler kaldırıldı. API'deki birçok yöntemin dönüş türü olarak ListenableFuture<Void> eklendi. Bu, API'de yapılan ve geriye dönük uyumluluğu bozan bir değişikliktir.
    • Artık ListenableFuture kullanarak senkron olarak alabilir ve gözlemleyebilirsiniz. Örneğin, WorkManager.enqueue() daha önce void değerini döndürürken artık ListenableFuture<Void> değerini döndürüyor. İşlem tamamlandıktan sonra kodu çalıştırmak için ListenableFuture.addListener(Runnable, Executor) veya ListenableFuture.get() numaralı telefonu arayabilirsiniz.
    • Bu ListenableFuture simgelerinin, işlemin başarılı olup olmadığını değil, yalnızca tamamlandığını gösterdiğini unutmayın. Bu bilgileri öğrenmek için WorkManager yöntemlerini zincirlemeye devam etmeniz gerekir.
    • Bu nesneler üzerindeki cancel() çağrılarını yoksayıyoruz. Çünkü bu çağrılar kafa karıştırıcı ve mantık yürütmesi zor (işlemi mi yoksa ortaya çıkan çalışmayı mı iptal ediyorsunuz?). Bu durum, Future sözleşmesi kapsamındadır.
    • Senkron getStatus* yöntemleriyle eşitliği korumak için ListenableFuture varyantları sağladık ve LiveData döndüren mevcut olanları, adlarında açıkça "LiveData" olacak şekilde yeniden adlandırdık (ör. getStatusesByIdLiveData(UUID)). Bu, API'de yapılan ve geriye dönük uyumluluğu bozan bir değişikliktir.

Hata Düzeltmeleri

  • alpha09'daki yinelenen androidx-annotations.pro dosyalarıyla ilgili bilinen sorun düzeltildi. Gradle dosyanızdan exclude 'META-INF/proguard/androidx-annotations.pro' öğesini silerek önceki sürüm notlarındaki geçici çözümü kaldırabilirsiniz.
  • Yeni Worker oluşturucusunu korumak için ProGuard yapılandırmaları eklendi. b/116296569
  • Çalışmanın REPLACEdığı yarış koşulunda olası NullPointerException düzeltildi. b/116253486 ve b/116677275
  • WorkContinuation.combine() artık iki veya daha fazla yerine bir veya daha fazla WorkContinuation kabul ediyor. b/117266752

API'de yapılan, geriye dönük uyumluluğu bozan değişiklikler

  • Önceden kullanılan tüm deprecated yöntemleri ve sınıfları (özellikle varsayılan Worker oluşturucu) kaldırıldı.
  • Arayüz WorkerFactory ve somut uygulama DefaultWorkerFactory, WorkerFactory adlı bir soyut sınıfta birleştirildi.
  • WorkManager.synchronous() ve WorkContinuation.synchronous() kaldırıldı.
  • WorkManager.getStatus*() yöntemleri artık ListenableFuture döndürüyor. WorkManager.getStatus*LiveData() dönüş LiveDatas.

Sürüm 1.0.0-alpha09

19 Eylül 2018

Bilinen Sorun

"İşletim sisteminden bağımsız "META-INF/proguard/androidx-annotations.pro" yoluyla birden fazla dosya bulundu" sorununu yaşıyorsanız lütfen alpha10'da sorunu düzeltirken geçici bir çözüm olarak gradle dosyanıza aşağıdakileri ekleyin:

Groovy

android {
    packagingOptions {
        exclude 'META-INF/proguard/androidx-annotations.pro'
    }
}

Kotlin

android {
    packagingOptions {
        exclude("META-INF/proguard/androidx-annotations.pro")
    }
}

Hata Düzeltmeleri

  • "100 iş" hatası için gereken başka bir düzeltme eklendi. b/115560696
  • Yarış koşulları nedeniyle oluşan yabancı anahtar kısıtlama hataları için bazı düzeltmeler eklendi. b/114705286
  • Temel Worker için yetkilendirilmiş ConstraintTrackingWorker.onStopped(boolean) çağrıları. b/114125093
  • Firebase JobDispatcher için doğru minimum geri çekilme gecikmesini zorunlu kılın. b/113304626
  • İyileştirilmiş iş parçacığı oluşturma, kitaplık içinde garanti edilir.
  • LiveData öğesinin dahili olarak yinelenmesini önlemeyle ilgili olası sorun düzeltildi.

API Değişiklikleri

  • Artık WorkManager.Configuration'nin bir parçası olarak WorkerFactory belirterek çalışma zamanında kendi Worker örneklerinizi oluşturabilirsiniz. Yedek fabrika, WorkManager'ın önceki sürümlerinin davranışıyla eşleşen DefaultWorkerFactory'dır.
    • Worker ve NonBlockingWorker için varsayılan oluşturucular artık kullanımdan kaldırıldı olarak işaretleniyor. Lütfen yeni oluşturucuyu (Worker(Context, WorkerParameters)) kullanın ve super(Context, WorkerParameters) işlevini çağırın. WorkManager'ın gelecekteki sürümlerinde varsayılan oluşturucu kaldırılacaktır.
  • Yeni ListenableFuture yapısını dahili olarak kullanmaya başladık (Guava bağımlılıkları olmadan). Gelecek sürümlerde ListenableFutures'ı API'ye ekleyeceğiz. Bu değişiklik, NonBlockingWorker'nın nihai olarak yeniden gösterilmesini destekleyecektir.
  • TestDriver'da TestDriver.setInitialDelayMet(UUID) ve TestDriver.setPeriodDelayMet(UUID) üzerinden zamanlanmış işleri tetikleme özelliği eklendi. b/113360060

Zarar Veren Değişiklikler

  • Varsayılan Worker ve NonBlockingWorker oluşturucular kullanımdan kaldırıldı. Lütfen en kısa sürede yeni oluşturucuya geçin. Gelecekteki sürümlerde varsayılan oluşturucu kaldırılacak.

Sürüm 1.0.0-alpha08

27 Ağustos 2018

Hata Düzeltmeleri

  • WorkManager bileşenleri, doğrudan başlatma sırasında etkinleştirilmemeleri için doğrudan başlatma işleminden haberdar olmayan bileşenler olarak açıkça etiketlendi. Gelecekte, doğrudan başlatma işlemine duyarlı bir WorkManager sürümü sunacağız. b/112665532
  • Yeniden denenmiş işin çalışmamasına neden olan sorun düzeltildi. b/112604021
  • Periyodik çalışmanın tekrar tekrar yürütülmemesi sorunu (yukarıdaki sorunla ilgili) düzeltildi. b/112859683
  • Uygulama işlemi zaten çalışıyorken geri çekilme politikalarına uyulur.
  • Sınırın 10 KB olduğunu belirtmek için Data bölümündeki düzeltilmiş istisna mesajları.
  • JobScheduler işleme tamamlanmasında yaşanan gecikmeyi hesaba katmak için Configuration.setMaxSchedulerLimit(int) maksimum değeri 50'ye düşürüldü. b/112817355

Sürüm 1.0.0-alpha07

16 Ağustos 2018

Hata Düzeltmeleri

  • Sınırsız sayıda sonuç döndürebilen negatif sınırlara sahip olası bir SQL sorgusu düzeltildi.
  • Yürütmesi tamamlanan işler artık diğer zamanlayıcılarda bu işin bekleyen tüm kopyalarını doğru şekilde iptal ediyor. Bu durum, JobScheduler iş sınırı aşılmasına neden oldu. b/111569265
  • ConstraintTracker sürümünde ConcurrentModificationException sorunu düzeltildi. b/112272753
  • Data.getBooleanArray(String) ve Data.getIntArray(String) işlevlerinin dönüş türü açıklamaları @NonNull yerine @Nullable olarak değiştirildi. b/112275229

API Değişiklikleri

  • Worker artık yeni bir sınıf olan NonBlockingWorker'ı sunuyor. Bu durum, mevcut kullanımı etkilemez. Gelecekte NonBlockingWorker, özel iş parçacığı çözümleri için tam olarak desteklenen bir öğe olacaktır.
  • Data.getBooleanArray(String) ve Data.getIntArray(String) işlevlerinin dönüş türü açıklamaları @NonNull yerine @Nullable olarak değiştirildi. b/112275229
  • Kotlin uzantıları: Map.toWorkData() kullanımdan kaldırıldı ve mevcut API'lerle daha tutarlı olması için üst düzey workDataOf(vararg Pair<String, Any?>) eklendi.

Sürüm 1.0.0-alpha06

1 Ağustos 2018

Hata Düzeltmeleri

  • İş planlarken veritabanı kilidini önleme. b/111801342
  • PeriodicWork uygulamasının, Doze modundayken planlandığı gibi çalışmamasına neden olan hata düzeltildi. b/111469837
  • WorkManager uygulamasının kilitlenmesine neden olan, kısıtlamaları izlerken oluşan yarış durumu düzeltildi. googlecodelabs/android-workmanager/issues/56
  • WorkRequest.Builder#build() kullanırken benzersiz WorkRequestler oluşturun. b/111408337
  • RescheduleReceiver kullanımını yalnızca WorkRequest gerektiren durumlarda etkinleştirin. b/111765853

Sürüm 1.0.0-alpha05

24 Temmuz 2018

API Değişiklikleri

  • WorkManager.getInstance() artık @Nullable yerine @NonNull ile açıklama ekleniyor. Bunun yerine, tekil öğe manuel başlatma durumlarında düzgün şekilde başlatılmazsa yöntem bir IllegalStateException oluşturur. Bu, API'de uyumsuzluğa neden olan bir değişikliktir.
  • WorkManager ayrıntı düzeyini kontrol edebilen yeni bir API (Configuration.Builder.setMinimumLoggingLevel(int)) eklendi. WorkManager varsayılan olarak Log.INFO ve üzeri günlükleri kaydeder.
  • Data.getString() işlevinin imzası değiştirildi. Bu işlev artık varsayılan değer almıyor (değer örtülü olarak null). Bu, API'de yapılan ve geriye dönük uyumluluğu bozan bir değişikliktir.
  • Yalnızca dahili kullanım için gereken bazı yöntemler @hide olarak işaretlendi. Constraints oluşturucusu, Data.toByteArray() ve Data.fromByteArray(byte[]) buna dahildir. Bu, API'de yapılan ve geriye dönük uyumluluğu bozan bir değişikliktir.

Hata Düzeltmeleri

  • WorkManager, otomatik yedeklemenin bilinen durumlarında artık iş yürütmüyor. Bu durum kilitlenmeye neden olmuş olabilir. b/110564377
  • JobScheduler kullanılırken PeriodicWorkRequestlerin 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 WorkRequest öğesi sıraya alınmadan önce veya sonra TestScheduler.setAllConstraintsMet(UUID) öğesinin çağrılmasına izin verilir. b/111238024

Zarar Veren Değişiklikler

  • WorkManager.getInstance() artık @Nullable yerine @NonNull ile açıklama ekleniyor.
  • Data.getString() işlevinin imzası değiştirildi. Bu nedenle artık varsayılan değer almıyor (örtülü olarak null).
  • Yalnızca dahili kullanım için gereken bazı yöntemler @hide olarak işaretlendi. Constraints oluşturucusu, Data.toByteArray() ve Data.fromByteArray(byte[]) buna dahildir.

Sürüm 1.0.0-alpha04

26 Haziran 2018

Hata Düzeltmeleri

  • PeriodicWorkRequest tabanlı uygulama kullanılırken PeriodicWorkRequest artık doğru şekilde yeniden planlanıyor.AlarmManager
  • Tüm çalışanlar, çıkmaya zorlama veya yeniden başlatma işleminden sonra yeniden planlandığında ortaya çıkabilecek olası ANR sorunu düzeltildi. b/110507716
  • Çeşitli WorkManager API'lerine nullability ek açıklamaları eklendi. b/110344065
  • Çalışan yürütmesi sırasında oluşan yakalanmayan istisnaları günlüğe kaydetme. b/109900862
  • WorkManager'ın eski bir sürümüne geri dönmeye karar vermeniz durumunda yıkıcı veritabanı taşımalarına izin verildi. b/74633270
  • Örtülü etiketlerin kopyaları oluşturulursa taşıma işleminin kilitlenmesine neden olan sorun düzeltildi. Bu çok nadir görülen bir sorundur ve yalnızca aynı örtülü etiket biçimini kendiniz kullandıysanız ortaya çıkar.

Sürüm 1.0.0-alpha03

19 Haziran 2018

Hata Düzeltmeleri

  • AlarmManager tabanlı uygulamada yarış durumu düzeltildi. b/80346526.

  • Cihaz yeniden başlatıldıktan sonra JobScheduler kullanılırken yinelenen işler düzeltildi.

  • İçerik URI'si tetikleyicileri olan işler artık yeniden başlatma işlemlerinde de devam ediyor. b/80234744

  • Doküman güncellemeleri. b/109827628, b/109758949, b/80230748

  • WorkRequest yeniden sıraya alınırken kilitlenme sorunu düzeltildi. b/109572353.

  • work-runtime-ktx bağımlılığı kullanılırken Kotlin derleyici uyarıları düzeltildi.

  • WorkManager artık Room sürüm 1.1.1-rc1'ü kullanıyor.

API Değişiklikleri

  • WorkContinuation.getStatuses()'nin senkronize sürümü olan getStatusesSync() 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 bulunulduysa Worker.isStopped(), true değerini döndürür. Çalışma açıkça iptal edildiğinde Worker.isCancelled(), true değerini döndürür. b/79632247
  • API 28'de JobParameters#getNetwork() için destek eklendi. Bu, Worker.getNetwork() üzerinden kullanıma sunulur.
  • Configuration.Builder.setMaxSchedulerLimit(int maxSchedulerLimit) eklendi. Böylece JobScheduler veya AlarmManager adresine kaç iş gönderilebileceğini zorunlu kılabilirsiniz. Bu sayede WorkManager, mevcut tüm JobScheduler zaman aralıklarınızı kullanamaz.
  • Configuration.setJobSchedulerJobIdRange(int minJobSchedulerId, int maxJobSchedulerId) iş kimliklerinin JobScheduler WorkManager için güvenli kullanım aralığını tanımlamaya yardımcı olan Configuration.setJobSchedulerJobIdRange(int minJobSchedulerId, int maxJobSchedulerId) eklendi. b/79996760
  • Worker.getRunAttemptCount(), belirli bir Worker için geçerli çalıştırma sayısını döndürür. b/79716516
  • WorkManager.enqueueUniquePeriodicWork(String uniqueWorkName, ExistingPeriodicWorkPolicy existingPeriodicWorkPolicy, PeriodicWorkRequest periodicWork), benzersiz PeriodicWorkRequest'leri sıraya almanıza olanak tanır. b/79600647
  • WorkManager.cancelAllWork(), tüm Worker'leri iptal eder. WorkManager öğesine bağlı kitaplıklar, dahili durumun ek olarak temizlenmesi için WorkManager.getLastCancelAllTimeMillis() öğesini kullanarak bu yöntemin en son ne zaman çağrıldığını sorgulayabilir.
  • Tamamlanan işlerin dahili veritabanından kaldırılması için WorkManager.pruneWork() eklendi. b/79950952, b/109710758

Davranış Değişiklikleri

  • Tüm WorkRequest'ler için, Worker'nin tam nitelikli sınıf adı olan örtülü bir etiket eklendi. Bu sayede, tag olmadan veya id kullanılamadığında WorkRequest kaldırılabilir. b/109572351

Zarar Veren Değişiklikler

  • Worker.WorkerResult, Worker.Result olarak yeniden adlandırıldı.
  • Worker.onStopped artık Worker açıkça iptal edildiğinde true olarak ayarlanan ek bir isCancelled parametresine sahip.

Sürüm 1.0.0-alpha02

24 Mayıs 2018

Hata Düzeltmeleri

  • State.isFinished() üzerinde NullPointerException düzeltildi. b/79550068
  • Worker etkinliklerinin Application.onCreate() tarihinde yeniden planlanmasına neden olan sorun düzeltildi. b/79660657
  • İşletim sisteminin izin verdiğinden daha fazla iş planlayabildiğiniz sorun düzeltildi. b/79497378
  • Worker ile ilişkili uyanık kalma kilitlerinin temizlenmesi arka plan iş parçacığına taşındı.
  • AlarmManager uygulaması, bekleyen tüm işler tamamlandığında artık doğru şekilde temizleniyor.
  • İngilizce olmayan yerel ayarları etkileyen temizleme SQL sorguları düzeltildi. b/80065360
  • Data'de float desteği eklendi. b/79443878
  • Data.Builder.putAll() artık Builder öğesinin bir örneğini döndürüyor. b/79699162
  • Javadoc'de daha fazla bilgi ve belgelerde düzeltmeler. b/79691663

API Değişiklikleri

  • Workers can react to being stopped. Worker.isStopped(), Worker durdurulup durdurulmadığını kontrol etmek için kullanılabilir. Worker.onStopped(), basit temizleme işlemleri yapmak için kullanılabilir.
  • Worker.getTags() API, Worker ile ilişkili etiketlerin Set değerini döndürür.
  • Süre ve TimeUnit kombinasyonu alan API'ler için javax.time.Duration aşırı yüklemeleri eklendi. Bu, @RequiresApi(26) tarafından korunmaktadır.
  • WorkManager uzantı, androidx.work.ktx paketinden androidx.work paketine taşındı. Eski uzantılar kullanımdan kaldırıldı ve gelecekteki bir sürümde kaldırılacak.
  • Configuration.withExecutor() desteği sonlandırıldı. Bunun yerine Configuration.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.