WorkManager

WorkManager API, güvenilir bir şekilde çalıştırılması gereken ertelenebilir, eşzamansız görevleri planlamayı kolaylaştırır. Bu API'ler, bir görev oluşturmanıza ve iş kısıtlamaları karşılandığında çalıştırılmak üzere WorkManager'a aktarmanıza olanak tanır.
Son Güncelleme Kararlı Sürüm Sürüm Adayı Beta Sürümü Alfa Sürüm
23 Nisan 2025 2.10.1 - - -

Bağımlılıkları beyan etme

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

Uygulamanızın veya modülünüzün build.gradle dosyasına ihtiyacınız olan yapıların bağımlılıklarını ekleyin:

EskiKotlin
dependencies {
    def work_version = "2.10.1"

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

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

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

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

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

    // optional - Multiprocess support
    implementation "androidx.work:work-multiprocess:$work_version"
}
dependencies {
    val work_version = "2.10.1"

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

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

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

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

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

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

Kotlin uzantılarını kullanma hakkında bilgi edinmek için ktx dokümanlarını inceleyin.

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

Geri bildirim

Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmek için fikirleriniz varsa lütfen bize bildirin. Yeni bir kitaplık oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oy verebilirsiniz.

Yeni bir sorun oluşturma

Daha fazla bilgi için Sorun İzleyici belgelerine bakın.

Sürüm 2.10

Sürüm 2.10.1

23 Nisan 2025

androidx.work:work-*:2.10.1 yayınlanır. 2.10.1 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Kısıtlama izleme için kullanılan bir NetworkCallback kaydının WorkManager tarafından TooManyRequestsException atılma olasılığını azaltın. ((b/231499040)[https://issuetracker.google.com/231499040], b309d5).

2.10.0 sürümü

30 Ekim 2024

androidx.work:work-*:2.10.0 yayınlanır. 2.10.0 sürümü bu taahhütleri içerir.

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

  • WorkManager'teki işler için izleme etiketleri eklendi. Bu sayede, yürütülen işleyicinin adını içereceğinden "adb shell dumpsys jobscheduler" komutunun anlaşılması çok daha kolay hale geldi. WorkManager'ün önemli alanlarının etrafına da izleme bölümleri eklenir.
  • Configuration.workerCoroutineContext, CoroutineWorker'un yürütüldüğü dağıtıcının kontrolü için eklendi.
  • Geliştiriciler, Constraints.setRequiredNetworkRequest yöntemi aracılığıyla bir çalışan için kısıtlama olarak NetworkRequest belirtebilir. Bu sayede, bu çalışanın hangi ağda çalışacağı konusunda daha ayrıntılı kontrol sahibi olabilirsiniz.
  • WorkManager 2.10.0 artık SDK 35 ile derlenmiş ve SDK 35 uyumluluğu için çeşitli değişiklikler içeriyor.

Sürüm 2.10.0-rc01

24 Ekim 2024

androidx.work:work-*:2.10.0-rc01 yayınlanır. 2.10.0-rc01 sürümü bu taahhütleri içerir.

Sürüm 2.10.0-beta01

2 Ekim 2024

androidx.work:work-*:2.10.0-beta01 yayınlanır. 2.10.0-beta01 sürümü bu taahhütleri içerir.

Sürüm 2.10.0-alpha04

18 Eylül 2024

androidx.work:work-*:2.10.0-alpha04 yayınlanır. 2.10.0-alpha04 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Ön plan hizmet türüne bağlı olarak, ön plan çalışanı yürütme zaman aşımı nedeniyle durdurulduğunda durdurma nedenini STOP_REASON_FOREGROUND_SERVICE_TIMEOUT ekleyin. (Ibd0af)

Sürüm 2.10.0-alpha03

4 Eylül 2024

androidx.work:work-*:2.10.0-alpha03 yayınlanır. 2.10.0-alpha03 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • WorkManager'teki işler için izleme etiketleri eklendi. Bu sayede, yürütülen işleyicinin adını içereceğinden "adb shell dumpsys jobscheduler" komutunun anlaşılması çok daha kolay hale geldi. WorkManager'ün önemli alanlarının etrafına da izleme bölümleri eklenir.

API Değişiklikleri

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

Hata Düzeltmeleri

  • Çalışmanın ön plan türü, iptal edilmiş Android 14 ön koşulu izinlerine sahipken WorkManager'ün uzun süredir çalışan bir çalışanı (ör. ön plan çalışanı) yeniden başlatmaya çalışması nedeniyle oluşan kilitlenmeyi düzeltin. (b/333957914)
  • Yeni platform API'lerine erişim manuel olarak belirtilmemiştir. Bunun nedeni, AGP 7.3 veya sonraki sürümlerde R8 kullanıldığında (ör. R8 3.3 sürümü) ve AGP 8.1 veya sonraki sürümlerde tüm derlemelerde (ör. D8 8.1 sürümü) API modelleme aracılığıyla otomatik olarak gerçekleşmesidir. AGP kullanmayan müşterilerin D8 8.1 veya sonraki bir sürüme güncellemeleri önerilir. Daha fazla bilgi için bu makaleye göz atın. (Ia60e0, b/345472586)

Sürüm 2.10.0-alpha02

17 Nisan 2024

androidx.work:work-*:2.10.0-alpha02 yayınlanır. 2.10.0-alpha02 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • WorkManager'de yapılandırılabilir bir @RestrictTo Tracer aracılığıyla izleme aralıkları yayınlama özelliği eklendi. (I17d7f, b/260214125)
  • Configuration.workerCoroutineContext, CoroutineWorker'un yürütüldüğü dağıtıcının kontrolü için eklendi. WorkManager içinde Dispatchers.Default kullanılmasının tamamen önüne geçer. (Icd1b7)
  • İşçiler için özel istisna işleyicileri ekleme (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ı. Artık LiveData, ListenableFuture veya Flow döndüren yöntemler doğru boşluk bilgisi sağlıyor. Bu koddaki boşluk varsayımlarının yanlış olması, istemcilerin kaynak kodunda değişiklik yapılmasını gerektirebilir. (If6757)

Sürüm 2.10.0-alpha01

24 Ocak 2024

androidx.work:work-*:2.10.0-alpha01 yayınlanır. 2.10.0-alpha01 sürümü bu taahhütleri içerir.

Yeni Özellikler

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

API Değişiklikleri

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

Sürüm 2.9

Sürüm 2.9.1

7 Ağustos 2024

androidx.work:work-*:2.9.1 yayınlanır. 2.9.1 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Çalışmanın ön plan türü, iptal edilmiş Android 14 ön koşul izinlerine sahipken WorkManager'ün uzun süredir çalışan bir çalışanı (ör. ön plan çalışanı) yeniden başlatmaya çalışması nedeniyle oluşan kilitlenmeyi düzeltin. (b/333957914)

2.9.0 sürümü

29 Kasım 2023

androidx.work:work-*:2.9.0 yayınlanır. 2.9.0 sürümü bu taahhütleri içerir.

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

  • Flow'ler aracılığıyla gözlemlenebilirlik. İşçinin ilerleme durumu artık LiveData yerine WorkManager.getWorkInfosFlow ve benzer yöntemler aracılığıyla Flow üzerinden gözlemlenebilir.
  • Artık WorkManager, bir çalışanın daha önce neden durdurulduğuna dair bir ipucu sağlıyor. getStopReason() yöntemi aracılığıyla çalışandan veya getStopReason() aracılığıyla WorkInfo'ten sorgulanabilir.
  • setNextScheduleTimeOverride aracılığıyla dönemsel çalışanların hassas planlaması. Bu sayede, bir sonraki dönemsel çalışma planının dinamik olarak hesaplanması sağlanır. Bu plan, uyarlanabilir yenileme süreleri, özel yeniden deneme davranışı veya bir haber feed'i işleyicisinin her sabah kullanıcı uyanmadan önce çalıştırılmasını sağlamak gibi gelişmiş özellikleri uygulamak için kullanılabilir. Bir sonraki işleyiciyi planlarken şu anda çalışan bir işleyicinin iptal edilmemesi için ExistingPeriodicWorkPolicy.UPDATE bu tekniklerle birlikte kullanılmalıdır.
  • WorkManager'ın, üretimle eşleşen mesaj dizileriyle test edilmesi. ExecutorsMode.PRESERVE_EXECUTORS, Configuration içinde ayarlanan yürütücüleri korumak ve gerçek ana iş parçacığı kullanmak için initializeTestWorkManager içinde kullanılabilir.
  • CoroutineWorker gibi coroutine API'leri, ek yapı work-runtime-ktx'den ana yapı work-runtime'a taşındı. work-runtime-ktx artık boş.

API Değişiklikleri

  • stopReason, WorkInfo grubuna eklendi. İşleyici çalıştırıldıktan sonra stopReason değerini kullanılabilir hale getirir. Bir işleyici durdurulduktan sonra uygulamanın kendisi çok hızlı bir şekilde sonlandırılabileceğinden, stopReason'ü kullanılabilir bir şekilde raporlamada faydalı olabilir. (I21386)
  • Clock değerinin yapılandırma aracılığıyla ayarlanmasına ve işleyici testlerinin yürütme sıralamasını yönlendirmek için kullanılmasına izin verin. (Ic586e)
  • getStopReason() yöntemi, ListenableWorker işlevine eklendi. Bu yöntem, çalışanın neden durdurulduğuyla ilgili ipucu verir. (I07060)
  • Closeguard'ın sızdırılan kaynaklarla ilgili uyarısını önlemek için WorkManagerTestInitHelper#closeWorkDatabase() eklendi. (Ia8d49)
  • WorkInfo sınıfının kurucusu artık herkese açıktır. Bu, test için yararlı olabilir. (Ia00b6, b/209145335)
  • work-runtime-ktx artık boş, CoroutineWorker ve Kotlin'e özgü diğer yardımcı programlar artık ana çalışma zamanındaki yapıda kullanılabilir. (I71a9a)
  • Düzenli çalışma programlarının doğru şekilde ayarlanmasına olanak tanıyan setNextScheduleTimeOverride yöntemi eklendi (I3b4da)
  • Planlanmış çalışma süresi bilgilerini almak için getNextScheduleTimeMillis eklendi.WorkInfo (I797e4)
  • İlk gecikme ve dönemsellik bilgileri WorkInfo alanına eklenir. (I52f2f)
  • getWorkInfosByTagFlow, getWorkInfoByIdFlow, getWorkInfosForUniqueWorkFlow, getWorkInfosFlow yöntemleri aracılığıyla akışlar üzerinden çalışanları gözlemleme yöntemi eklendi (If122a)
  • Constraints yapıcı ve özelliklerine eksik @RequiresApi(...) ek açıklamaları eklendi. Bu ek açıklamalar artık WorkManager'un önceki sürümlerinde bulunan Constraints.Builder'teki ayarlayıcılarla ilgili ek açıklamalarla uyumlu hale getirildi. (I6d7d2)
  • WorkManager artık içerik URI'si çalışanları için ayrı bir sınıra sahiptir. Bu sınır, yüksek yük altında içerik güncellemelerinin eksik olmasını önlemek amacıyla JobScheduler'te çalışanlara garantili yuvalar sağlar. Sınır, Configuration.Builder.setContentUriTriggerWorkersLimit üzerinden yapılandırılabilir. (Ic128f)
  • WorkInfo alanına kısıtlamalar eklenir. (I162c0)

Sürüm 2.9.0-rc01

18 Ekim 2023

androidx.work:work-*:2.9.0-rc01 yayınlanır. 2.9.0-rc01 sürümü bu taahhütleri içerir.

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

Sürüm 2.9.0-beta01

6 Eylül 2023

androidx.work:work-*:2.9.0-beta01 yayınlanır. 2.9.0-beta01 sürümü bu taahhütleri içerir.

API Değişiklikleri

Sürüm 2.9.0-alpha02

26 Temmuz 2023

androidx.work:work-*:2.9.0-alpha02 yayınlanır. 2.9.0-alpha02 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Artık WorkManager, bir çalışanın daha önce neden durdurulduğuna dair bir ipucu sağlıyor. getStopReason() yöntemi aracılığıyla çalışandan veya getStopReason() yöntemi aracılığıyla WorkInfo'ten sorgulanabilir.

API Değişiklikleri

  • stopReason, WorkInfo grubuna eklendi. İşleyici çalıştıktan sonra stopReason değerini kullanılabilir hale getirir. Bir işleyici durdurulduktan sonra uygulamanın kendisi çok hızlı bir şekilde kapatılabileceğinden, stopReason raporlamasında kullanılabilir bir şekilde yardımcı olabilir. (I21386)
  • Saatin yapılandırma üzerinden ayarlanmasına ve işleyici testlerinin yürütme sıralamasını yönlendirmek için kullanılmasına izin verin. (Ic586e)
  • getStopReason() yöntemi, ListenableWorker işlevine eklendi. Bu yöntem, çalışanın neden durdurulduğuyla ilgili ipucu verir. (I07060)
  • Closeguard'ın sızdırılan kaynaklarla ilgili uyarısını önlemek için WorkManagerTestInitHelper#closeWorkDatabase() eklendi. (Ia8d49)

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 yayınlanır. 2.9.0-alpha01 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Flow'ler aracılığıyla gözlemlenebilirlik. İşçinin ilerleme durumu artık LiveData yerine WorkManager.getWorkInfosFlow ve benzer yöntemler aracılığıyla Flow üzerinden gözlemlenebilir.
  • setNextScheduleTimeOverride aracılığıyla dönemsel çalışanların hassas planlaması. Bu sayede, bir sonraki dönemsel çalışma planının dinamik olarak hesaplanması sağlanır. Bu plan, uyarlanabilir yenileme süreleri, özel yeniden deneme davranışı veya bir haber feed'i işleyicisinin her sabah kullanıcı uyanmadan önce çalıştırılmasını sağlamak gibi gelişmiş özellikleri uygulamak için kullanılabilir. Bir sonraki işleyiciyi planlarken şu anda çalışan bir işleyicinin iptal edilmemesi için ExistingPeriodicWorkPolicy.UPDATE bu tekniklerle birlikte kullanılmalıdır.
  • WorkManager, üretimle eşleşen mesaj dizileriyle test yapıyor. ExecutorsMode.PRESERVE_EXECUTORS, Configuration içinde ayarlanan yürütücüleri korumak ve gerçek ana iş parçacığı kullanmak için kullanılabilir.
  • CoroutineWorker gibi coroutine API'leri, ek yapı work-runtime-ktx'ten ana yapı work-runtime'ye taşındı. work-runtime-ktx artık boş.

API Değişiklikleri

  • WorkInfo sınıfının kurucusu artık herkese açık. Bu, test için yararlı olabilir. (Ia00b6, b/209145335)
  • work-runtime-ktx artık boştur, CoroutineWorker ve kotlin'e özgü diğer yardımcı programlar artık ana work-runtime yapıda kullanılabilir. (I71a9a)
  • Düzenli çalışma programlarının doğru şekilde ayarlanmasına olanak tanıyan setNextScheduleTimeOverride yöntemi eklendi (I3b4da)
  • getEarliestRunTimeMillis, getNextScheduleTimeMillis olarak yeniden adlandırıldı. (I2bd7a)
  • Sonraki planlı çalıştırma zamanı bilgileri WorkInfo alanına eklenir. (I797e4)
  • İlk gecikme ve dönemsellik bilgileri WorkInfo alanına eklenir. (I52f2f)
  • getWorkInfosByTagFlow, getWorkInfoByIdFlow, getWorkInfosForUniqueWorkFlow, getWorkInfosFlow yöntemleri aracılığıyla akışlar üzerinden çalışanları gözlemleme yöntemi eklendi (If122a)
  • Kısıtlamalar'ın kurucularına ve özelliklerine eksik @RequiresApi(...) ek açıklamaları eklendi. Bu ek açıklamalar artık WorkManager'un önceki sürümlerinden beri Constraints.Builder'teki ayarlayıcılarda bulunan ilgili ek açıklamalarla uyumlu hale getirildi. (I6d7d2)
  • WorkManager artık içerik URI'si çalışanları için ayrı bir sınıra sahiptir. Bu sınır, yüksek yük altında içerik güncellemelerinin eksik olmasını önlemek amacıyla JobScheduler'te çalışanlara garantili yuvalar sağlar. Sınır, Configuration.Builder.setContentUriTriggerWorkersLimit üzerinden yapılandırılabilir. (Ic128f)
  • WorkInfo alanına kısıtlamalar eklenir. (I162c0)

Sürüm 2.8

Sürüm 2.8.1

22 Mart 2023

androidx.work:work-*:2.8.1 yayınlanır. 2.8.1 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

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

2.8.0 sürümü

8 Şubat 2023

androidx.work:work-*:2.8.0 yayınlanır. 2.8.0 sürümü bu taahhütleri içerir.

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

Yeni Özellikler

API Değişiklikleri

  • WorkManager.updateWork, orijinal iş sırasına ekleme zamanını ve zincirlemeyi koruyarak çalışmayı güncellemek için eklendi.(I9a248, b/219446409)
  • ExistingPeriodicWorkPolicy.UPDATE eklendi. Bu politika, dönemlik bir çalışmanın adına göre güncellenmesine olanak tanır. Mevcut REPLACE işlevine benzer ancak daha az müdahalecidir: Çalışan şu anda çalışıyorsa iptal etmez ve iş sırasına ekleme süresini korur. İlk gecikme ve dönem, güncelleme zamanından değil, orijinal iş sırasına ekleme zamanından hesaplanır. REPLACE ve UPDATE adları çok benzer olduğundan, bu iki ad arasında karışıklık olmaması için REPLACE desteği sonlandırıldı. REPLACE için önceki semantikleri korumak istiyorsanız REPLACE ile aynı olan yeni eklenen CANCEL_AND_REENQUEUE kullanılabilir. (I985ed, b/219446409)
  • setSchedulingExceptionHandler aracılığıyla Consumer<Throwable> sağlayarak planlama istisnalarını durdurma özelliği eklendi.
  • WorkManager'ı başlatmaya çalışırken sorun yaşanıp yaşanmadığını belirlemek için setInitializationExceptionHandler aracılığıyla Consumer<Throwable> sağlama özelliği eklendi.
  • OneTimeWorkRequest ve PeriodicWorkRequest için satır içi yardımcılar androidx.work:work-runtime-ktx'den androidx.work:work-runtime'a taşındı (I0010f, b/209145335)
  • WorkQuery öğesini doğrudan oluşturmak için WorkQuery.fromIds, WorkQuery.fromStates, WorkQuery.fromUniqueWorkNames, WorkQuery.fromTags yardımcı yöntemleri eklendi. (b/199919736) (If48f2, b/199919736)
  • getForegroundInfo, Worker grubuna eklendi. (Ic1ead)
  • Hem RxJava 2 hem de RxJava 3 için RxWorker artık ListenableFuture döndüren setForegroundInfoAsync yerine Completable döndüren setForeground işlevine sahiptir.
  • Hem RxJava 2 hem de RxJava 3 için RxWorker, ListenableFuture döndüren getForegroundInfoAsync yerine kullanılabilen Single döndüren getForegroundInfo işlevine sahiptir. (b/203851459)
  • Kotlin kullanıcıları için uygun olan Constraints.Builder yerine artık kısıtlamalar doğrudan oluşturulabilir. (Idc390, b/137568653)
  • WorkManager değerinin başlatılıp başlatılmadığını kontrol etme özelliği eklendi. Ayrıca, kitaplık geliştiricilerin WorkManager'ın başlatıldığı yapılandırmayı almaları için yeni bir getConfiguration() API eklendi. (I6eff3, b/212300336)

Hata Düzeltmeleri

  • İş yükü altındayken işleyicilerin hemen çalışmasını engelleyen açgözlü planlayıcıyla ilgili bir sorun düzeltildi. (I9686b, b/248111307)
  • SDK 33 ve sonraki sürümlerde POST_NOTIFICATIONS izninin verilmesini gerektiren API'lere @RequiresPermission eklendi. (Ie542e, b/238790278)
  • suspendCancellableCoroutine kullanılırken CoroutineScope'teki iptalleri ListenableFuture'e iletme.

Sürüm 2.8.0-rc01

7 Aralık 2022

androidx.work:work-*:2.8.0-rc01 yayınlanır. 2.8.0-rc01 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Bu sürümde yeni özellik bulunmuyor. Bu, temel olarak bir sürüm yükseltmesidir

Sürüm 2.8.0-beta02

9 Kasım 2022

androidx.work:work-*:2.8.0-beta02 yayınlanır. 2.8.0-beta02 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Daha önce yeni nesil bilgileri dikkate almayan WorkInfo yöntemi WorkInfo'te düzeltildi.equals (4977cc)

Sürüm 2.8.0-beta01

5 Ekim 2022

androidx.work:work-*:2.8.0-beta01 yayınlanır. 2.8.0-beta01 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • İş yükü altındayken işleyicilerin hemen çalışmasını engelleyen açgözlü planlayıcıyla ilgili bir sorun düzeltildi. (I9686b, b/248111307)

Sürüm 2.8.0-alpha04

7 Eylül 2022

androidx.work:work-*:2.8.0-alpha04 yayınlanır. 2.8.0-alpha04 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Çalışanın neslini döndüren WorkerInfo.getGeneration() ve WorkerParameters.getGeneration() işlevleri eklendi. ExistingPeriodicWorkPolicy.UPDATE kullanılarak WorkManager.updateWork veya WorkManager.enqueueUniquePeriodicWork aracılığıyla güncellenen bir çalışanın birden fazla nesli vardır. İşçi şu anda çalışıyorsa bu yöntemin, işçinin yürütülmesi sırasında bir güncelleme yapılmışsa şu anda çalışan işçiden daha yeni bir nesil döndürebileceğini unutmayın. (I665c5, b/219446409) (I128a9, b/219446409)
  • WorkManager başlatılmaya çalışırken sorun olup olmadığını belirlemek için kullanılabilecek bir İstisna İşleyen olan InitializationExceptionHandler eklendi. (I061de)

Sürüm 2.8.0-alpha03

10 Ağustos 2022

androidx.work:work-*:2.8.0-alpha03 yayınlanır. 2.8.0-alpha03 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • WorkRequests öğesini, orijinal sıraya ekleme süresini, zincirleme vb. koruyarak müdahaleci olmayan bir şekilde güncelleme özelliği eklendi. Daha fazla bilgi için WorkManager.updateWork ve ExistingPeriodicWorkPolicy.UPDATE başlıklı makaleleri inceleyin.

API Değişiklikleri

  • WorkManager.updateWork, orijinal iş sırasına ekleme zamanını ve zincirlemeyi koruyarak çalışmayı güncellemek için eklendi.(I9a248, b/219446409)
  • ExistingPeriodicWorkPolicy.UPDATE eklendi. Bu politika, dönemlik bir çalışmayı ada göre güncellemenize olanak tanır. Mevcut REPLACE işlevine benzer ancak daha az müdahalecidir: Çalışan şu anda çalışıyorsa iptal etmez ve iş sırasına ekleme zamanını korur. İlk gecikme ve dönem, güncelleme zamanından değil, orijinal iş sırasına ekleme zamanından hesaplanır. REPLACE ve UPDATE adları çok benzer olduğundan, bu iki ad arasındaki karışıklığı azaltmak için REPLACE desteği sonlandırıldı. REPLACE için önceki semantikleri korumak istiyorsanız REPLACE ile aynı olan yeni eklenen CANCEL_AND_REENQUEUE kullanılabilir. (I985ed, b/219446409)
  • SchedulingExceptionHandler tanımlayarak planlama istisnalarını durdurma özelliğini ekleyin. (I033eb)
  • OneTimeWorkRequest ve PeriodicWorkRequest için satır içi yardımcılar androidx.work:work-runtime-ktx'den 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 yayınlanır. 2.8.0-alpha02 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Artık Builder yerine doğrudan kısıtlama oluşturabilirsiniz. Bu, Kotlin kullanıcıları için kullanışlıdır. (Idc390, b/137568653)
  • WorkManager değerinin başlatılıp başlatılmadığını kontrol etme özelliği eklendi. Ayrıca, kitaplık geliştiricilerin WorkManager'ın başlatıldığı yapılandırmayı almaları için yeni bir getConfiguration() API eklendi. (I6eff3, b/212300336)

Sürüm 2.8.0-alpha01

12 Ocak 2022

androidx.work:work-*:2.8.0-alpha01 yayınlanır. 2.8.0-alpha01 sürümü bu taahhütleri içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

  • suspendCancellableCoroutine kullanılırken CoroutineScope'teki iptalleri ListenableFuture'e iletme. (I77e63)

Sürüm 2.7

Sürüm 2.7.1

17 Kasım 2021

androidx.work:work-*:2.7.1 yayınlanır. 2.7.1 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • suspendCancellableCoroutine kullanılırken CoroutineScope'teki iptal işlemleri ListenableFuture'e iletilir. (I77e63)
  • Geciken çalışma istekleri hızlandırılmış olarak işaretlendiğinde hemen bir istisna atılır. bef1762

2.7.0 sürümü

13 Ekim 2021

androidx.work:work-*:2.7.0 yayınlanır. 2.7.0 sürümü bu taahhütleri içerir.

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

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

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

Sürüm 2.7.0-rc01

29 Eylül 2021

androidx.work:work-*:2.7.0-rc01 yayınlanır. 2.7.0-rc01 sürümü bu taahhütleri içerir.

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

Sürüm 2.7.0-beta01

1 Eylül 2021

androidx.work:work-*:2.7.0-beta01 yayınlanır. 2.7.0-beta01 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • WorkManager'ı başlatırken çok işlemli SQLite anlaşmazlığını azaltın.

API Değişiklikleri

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

Hata Düzeltmeleri

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

Sürüm 2.7.0-alpha05

21 Temmuz 2021

androidx.work:work-*:2.7.0-alpha05 yayınlanır. 2.7.0-alpha05 sürümü bu taahhütleri içerir.

Bu sürüm, WorkManager 2.6.0-beta02 sürümünün hata düzeltmelerini de içerir.

Sürüm 2.7.0-alpha04

2 Haziran 2021

androidx.work:work-*:2.7.0-alpha04 yayınlanır.

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 artık hızlandırılmaz. Bu işler normal işler haline gelir.

Sürüm 2.7.0-alpha03

21 Nisan 2021

androidx.work:work-*:2.7.0-alpha03 yayınlanır. 2.7.0-alpha03 sürümü bu taahhütleri 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 yayınlanır. 2.7.0-alpha02 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

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

Sürüm 2.7.0-alpha01

18 Şubat 2021

androidx.work:work-*:2.7.0-alpha01 yayınlanır. 2.7.0-alpha01 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • WorkManager, Android 12'deki ön plan hizmeti kısıtlamalarını dikkate alan yeni birWorkRequest.Builder.setExpedited(...) API kullanıma sunuyor.

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

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

    WorkManager, setExpedited(...) kullanılırken Android 12'den itibaren JobScheduler'teki hızlandırılmış işlere yetki verir. Ayrıca, ön plan hizmetlerine yetki vererek Android'in önceki sürümlerinde geriye dönük uyumluluk sağlar.

API Değişiklikleri

  • Hızlandırılmış WorkRequest'ler için destek ekleme

2.6.0 sürümü

2.6.0 sürümü

1 Eylül 2021

androidx.work:work-*:2.6.0 yayınlanır. 2.6.0 sürümü bu taahhütleri içerir.

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

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

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

  • 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 yayınlanır. 2.6.0-rc01 sürümü bu taahhütleri içerir.

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

Sürüm 2.6.0-beta02

21 Temmuz 2021

androidx.work:work-*:2.6.0-beta02 yayınlanır. 2.6.0-beta02 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • RemoteWorkManager artık RemoteWorkManagerService ile olan bağlamayı doğru şekilde kaldırıyor. Bu sayede RemoteWorkManagerService doğru şekilde temizlenebiliyor. aosp/1730694
  • RemoteListenableWorker artık RemoteWorkerService ile olan bağlamayı doğru şekilde kaldırıyor. Bu sayede RemoteWorkerService doğru şekilde temizlenebiliyor. aosp/1743817
  • ForceStopRunnable artık yalnızca birincil uygulama sürecinde çalışır. Bu bir optimizasyondur ve birden fazla işlem kullanan uygulamalarda kaynak anlaşmazlığını önler. aosp/1749180, aosp/1761729

Sürüm 2.6.0-beta01

2 Haziran 2021

androidx.work:work-*:2.6.0-beta01 yayınlanır. 2.6.0-beta01 sürümü bu taahhütleri içerir.

Bu sürümde dokümanlar üzerinde bazı küçük iyileştirmeler yapılmıştır. Sürüm, büyük ölçüde 2.6.0-alpha02 ile aynıdır.

Sürüm 2.6.0-alpha02

21 Nisan 2021

androidx.work:work-*:2.6.0-alpha02 yayınlanır. 2.6.0-alpha02 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Herhangi bir işlemde çalışabilen çalışanlar için destek ekler. (Iaf200)

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

API Değişiklikleri

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

Sürüm 2.6.0-alpha01

24 Mart 2021

androidx.work:work-*:2.6.0-alpha01 yayınlanır. 2.6.0-alpha01 sürümü bu taahhütleri içerir.

Yeni Özellikler

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

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

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

    (veya)

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

API Değişiklikleri

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

Hata Düzeltmeleri

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

2.5.0 sürümü

2.5.0 sürümü

27 Ocak 2021

androidx.work:work-*:2.5.0 yayınlanır. 2.5.0 sürümü bu taahhütleri içerir.

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

  • Birden fazla işlem kullanan uygulamalar için yeni bir :work:work-multiprocess yapı. Bu sayede, iş isteği planlaması tek bir işlemde birleştirilerek performans kazanımları elde edilir.
    • work-multiprocess'ü kullanmak için aşağıdakilerde bağımlılık tanımlayın: implementation "androidx.work:work-multiprocess:2.5.0"
    • Configuration.Builder.setDefaultProcessName(String) kullanarak birincil bir işlem atayın.
    • work-multiprocess kullanırken WorkRequest'lerinizi yönetmek için RemoteWorkManager'ı da kullanmak istiyorsunuz. RemoteWorkManager her zaman belirtilen işleme ulaşır. İşlem içi zamanlayıcı da belirtilen işlemde çalışır.
  • Bazen ActivityManager, bir iş başlatmak için JobService örneğini oluşturamaz. Bu durum, platformdaki bir hata nedeniyle temel işin sessizce bırakılmasına neden olur. WorkManager artık bir Application başlatılırken işleri uzlaştırma yoluyla her WorkRequest için yedek işlerin bulunduğundan emin oluyor. Bu, iş yürütme güvenilirliğini büyük ölçüde artırır. (b/172475041, aosp/1489577)
  • WorkManager, bir WorkRequest tamamlandıktan sonra WorkRequest'ların izlendiği arabellek süresini kısaltarak veritabanı büyümesini sınırlar. Süre 7 gün önceydi. Bu süre 1 gün + keepResultsForAtLeast süresi olarak düşürülmüştür. (aosp/1419708)
  • TestListenableWorkerBuilder, testleri kolaylaştırmak için artık ListenableWorker'u genişleten somut sınıfı destekliyor. (aosp/1443299, b/169787349)
  • WorkManager İnceleyici, Android Studio Arctic Fox sürümünde kullanıma sunuldu.

Sürüm 2.5.0-rc01

13 Ocak 2021

androidx.work:work-*:2.5.0-rc01 yayınlanır. 2.5.0-rc01 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

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

Sürüm 2.5.0-beta02

2 Aralık 2020

androidx.work:work-*:2.5.0-beta02 yayınlanır. 2.5.0-beta02 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • androidx.work:work-multiprocess'te, WorkManager'ın belirtilen işleme bağlanmaya çalışırken çağıran iş parçacığının yanlışlıkla engellendiği bir hata düzeltildi. (aosp/1475538)
  • PeriodicWorkRequest'ların doğru şekilde uyumlulaştırılamamasına neden olan hata düzeltildi. (b/172475041, aosp/1489577)
  • setForeground* API'leri kullanılırken ön plan hizmeti durdurulduğunda ortaya çıkan bir platform hatası için geçici çözüm eklendi. (b/170924044, aosp/1489901)

Sürüm 2.5.0-beta01

28 Ekim 2020

androidx.work:work-*:2.5.0-beta01 yayınlanır. 2.5.0-beta01 sürümü bu taahhütleri içerir.

Yeni Özellikler

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

Hata Düzeltmeleri

  • ListenableWorker'ler kesintiye uğradığında, daha sonra yeniden planlanabilmeleri için 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 yayınlanır. 2.5.0-alpha03 sürümü bu taahhütleri içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

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

Sürüm 2.5.0-alpha02

16 Eylül 2020

androidx.work:work-*:2.5.0-alpha02 yayınlanır. 2.5.0-alpha02 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • WorkInfo'leri sorgulamak için id'leri 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ığı birkaç sorunu çözmeye yardımcı olur. Örneğin:
    • WorkManager'ın genellikle her uygulama sürecinde başlatılması gerekir. SQLite anlaşmazlığı arttığı ve bu da başka sorunlara neden olduğu için bu durum pek iyi değildir. WorkManager'da artık Configuration#setDefaultProcessName(processName) kullanarak birincil bir uygulama işlemi belirlemek için kullanılabilecek yeni API'ler mevcuttur. 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 için enqueue, cancel ve query iş istekleri. Bu API'ler, birden fazla işlemde SQLite anlaşmazlığını önlemek için LiveData varyantlarını içermez. enqueue, cancel ve query'ye yapılan tüm çağrılar, AIDL kullanılarak bir primary uygulama sürecine yönlendirilir ve akıcı bir ListenableFuture döndürülür. (aosp/1392657, aosp/1411210, aosp/1412215, aosp/1417713)

API Değişiklikleri

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

Hata Düzeltmeleri

  • WorkManager artık işleri proaktif olarak uyumlu hale getiriyor. Böylece WorkManager başlatılırken WorkRequest ve JobScheduler işleri senkronize olur. (aosp/1412794, b/166292069)

Sürüm 2.5.0-alpha01

19 Ağustos 2020

androidx.work:work-*:2.5.0-alpha01 yayınlanır. 2.5.0-alpha01 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Gelecekte WorkManager ile daha iyi araçlar sunmamıza olanak tanıyan dahili API'lerde yapılan değişiklikler. Gelişmeler için takipte kalın.

Hata Düzeltmeleri

  • Bazı cihazlarda ağ durumunu izlerken SecurityException değerlerini işleme (aosp/1396969)

Harici Katkı

Sürüm 2.4.0

Sürüm 2.4.0

22 Temmuz 2020

androidx.work:work-*:2.4.0 yayınlanır. 2.4.0 sürümü bu taahhütleri içerir.

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

  • WorkManager'ın işlem içi zamanlayıcısı artık daha güçlü. Daha önce, işlemdeki Scheduler yalnızca gecikmemiş ve kısıtlamaları karşılanmış işlerin yürütülmesini dikkate alıyordu. Artık işlem içi planlayıcı, PeriodicWorkRequests dahil olmak üzere gelecekte yürütülebilecek WorkRequest'leri izler. İşlemdeki Scheduler, planlama sınırlarını da dikkate almaz (ancak yine de WorkManager tarafından kullanılan Executor boyutuyla sınırlıdır). Bu, uygulamanın artık ön plandayken çok daha fazla WorkRequest yürütebileceği anlamına gelir. WorkManager, gecikmeli işlerin ön planda yürütülmesini yönetmek için yeni bir yapılandırılabilir RunnableScheduler özelliği de sunar. (aosp/1185778)
  • WorkManager artık RxJava 3'ü destekliyor. RxJava 3'ü kullanmak için aşağıdaki bağımlılığı eklemeniz gerekir: implementation "androidx.work:work-rxjava3:2.4.0". (aosp/1277904)
  • WorkQuery kullanarak WorkInfo sorguları yapma özelliği eklendi. Bu, geliştiricilerin WorkInfo öğelerini birden fazla özelliğin kombinasyonuna göre sorgulamak istediğinde kullanışlıdır. Daha fazla bilgi için WorkQuery.Builder.fromStates(...), WorkQuery.Builder. fromTags(...) veya WorkQuery.Builder.fromUniqueWorkNames(...) sayfasına bakın. (aosp/1253230, b/143847546)
  • Aşağıdakileri kullanarak WorkManager'ten teşhis bilgileri isteme özelliğini ekleyin:

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

    Bu sayede aşağıdakiler gibi birçok yararlı bilgi edinebilirsiniz:

    • Son 24 saat içinde tamamlanan WorkRequest'ler.
    • Şu anda ÇALIŞAN WorkRequest'ler.
    • Planlanmış WorkRequest'ler. (aosp/1235501)
  • APPEND'a benzer ancak ön koşulların iptal edildiği veya başarısız olduğu bir zinciri değiştiren ExistingWorkPolicy.APPEND_OR_REPLACE öğesini ekleyin. (b/134613984, aosp/1199640)

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

  • DelegatingWorkerFactory kullanırken yetki verilecek fabrikaları dinamik olarak ekleme desteği eklendi. (b/156289105, aosp/1309745)

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

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

  • Aşağıdakileri zorunlu tutan yeni lint kuralları:

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

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

  • WorkManager'ün, ön plan hizmetine bağlı bir Worker örneğini birden fazla kez çalıştırmaya çalıştığı bir hatayı düzeltme (b/156310133, aosp/1309853)

Sürüm 2.4.0-rc01

24 Haziran 2020

androidx.work:work-*:2.4.0-rc01 yayınlanır. 2.4.0-rc01 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

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

Sürüm 2.4.0-beta01

20 Mayıs 2020

androidx.work:work-gcm:2.4.0-beta01, androidx.work:work-runtime:2.4.0-beta01, androidx.work:work-runtime-ktx:2.4.0-beta01, androidx.work:work-rxjava2:2.4.0-beta01 ve androidx.work:work-testing:2.4.0-beta01 yayınlanır. 2.4.0-beta01 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Ön plandaki Worker kesintiye uğradıktan sonra ForegroundService'ün durdurulmamasına neden olan hata düzeltildi. (b/155579898, aosp/1302153)
  • WorkManager'ün, ön plan hizmetine bağlı bir Worker örneğini birden fazla kez çalıştırmaya çalıştığı bir hatayı düzeltme (b/156310133, aosp/1309853)
  • DelegatingWorkerFactory kullanırken yetki verilecek fabrikaları dinamik olarak ekleme desteği eklendi. (b/156289105, aosp/1309745)
  • BATTERY_NOT_LOW kısıtlamaları için izlemeyi platformla daha uyumlu hale getirin. (aosp/1312583)

Sürüm 2.4.0-alpha03

29 Nisan 2020

androidx.work:work-*:2.4.0-alpha03 yayınlanır. 2.4.0-alpha03 sürümü bu taahhütleri içerir.

Yeni Özellikler

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

API Değişiklikleri

  • ListenableWorker yürütülmesi tamamlandıktan sonra setProgressAsync() çağrıldığında artık ListenableFuture aracılığıyla bir Exception sinyali gönderilir. (aosp/1285494)
  • WorkQuery.Builder artık final olarak işaretlendi. (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 yayınlanır. 2.4.0-alpha02 sürümü bu taahhütleri içerir.

Yeni Özellikler

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

API Değişiklikleri

  • WorkQuery kullanarak WorkInfo sorguları oluşturma özelliği eklendi. Bu, geliştiricilerin WorkInfo öğelerini birden fazla özelliğin kombinasyonuna göre sorgulamak istediğinde kullanışlıdır. Daha fazla bilgi için WorkQuery.Builder withStates(...), WorkQuery.Builder withTags(...) veya WorkQuery.Builder withUniqueWorkNames(...) sayfasına bakın. (aosp/1253230, b/143847546)

  • ListenableWorker tamamlanmadan önce tamamlanmayan setForegroundAsync() çağrıları artık döndürülen ListenableFuture üzerinde bir IllegalStateException aracılığıyla sinyalize edilecek. (aosp/1262743)

Hata Düzeltmeleri

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

Sürüm 2.4.0-alpha01

4 Mart 2020

androidx.work:work-*:2.4.0-alpha01 yayınlanır. 2.4.0-alpha01 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • WorkManager'ın işlem içi zamanlayıcısı artık daha güçlü. Daha önce, işlem içi planlayıcı yalnızca gecikmeyen ve kısıtlamaları karşılanan işleri yürütmeyi dikkate alıyordu. Artık işlem içi planlayıcı, PeriodicWorkRequest'ler dahil olmak üzere gelecekte yürütülebilecek WorkRequest'leri izler. İşlem içi planlayıcı da planlama sınırlarını gözetmez (ancak yine de WorkManager tarafından kullanılan Executor boyutuyla sınırlıdır). Bu, uygulamanın artık ön plandayken çok daha fazla WorkRequest çalıştırabileceği anlamına gelir. (aosp/1185778)

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

    • Son 24 saat içinde tamamlanan WorkRequest'ler.
    • Şu anda ÇALIŞAN WorkRequest'ler.
    • Planlanmış WorkRequest'ler. (aosp/1235501)
  • Aşağıdakileri zorunlu tutan yeni lint kuralları:

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

API Değişiklikleri

  • APPEND'a benzer ancak ön koşulların iptal edildiği veya başarısız olduğu bir zinciri yerine alan ExistingWorkPolicy.APPEND_OR_REPLACE öğesini ekleyin. (b/134613984, aosp/1199640)

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

Hata Düzeltmeleri

  • Daha önce mümkün olmayan bir tür olan Single<Void> döndürdüğü için RxWorker'teki setProgress() desteği sonlandırıldı. Bunun yerine Completable döndüren yeni bir API setCompletableProgress() ve yeni API'lere geçişe yardımcı olan yeni Lint kuralları eklendi. (b/150080946, aosp/1242665)

2.3.4 sürümü

2.3.4 sürümü

18 Mart 2020

androidx.work:work-*:2.3.4 yayınlanır. 2.3.4 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • 10 dakikalık yürütme aralığı aşıldığında uzun süre çalışan Worker'lerin birden çok örneğinin çalıştırılmasına neden olan bir hata düzeltildi. (aosp/1247484, b/150553353)
  • WorkManager'ın lint IssueRegistry hatası için düzeltme. Katkıda bulunduğunuz için Slack'tan @ZacSweers'e teşekkür ederiz. (aosp/1217923)

Sürüm 2.3.3

Sürüm 2.3.3

4 Mart 2020

androidx.work:work-*:2.3.3 yayınlanır. 2.3.3 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Worker'nin kesintiye uğraması durumunda yeniden planlamanın doğru şekilde yapılmamasına neden olan hata düzeltildi. (b/150325687, aosp/1246571)

Sürüm 2.3.2

Sürüm 2.3.2

19 Şubat 2020

androidx.work:work-*:2.3.2 yayınlanır. 2.3.2 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • WorkManager'ın, nadir durumlarda JobScheduler'daki 100 iş sınırını aşmasına neden olan sorun düzeltildi. (aosp/1226859, b/149092520)
  • ConstraintControllers'daki yarış koşulu sorunu düzeltildi. (aosp/1220100)
  • Uzun süre çalışan işçiler için yönetim ön plan hizmet yaşam döngüsü iyileştirildi. (aosp/1226295)
  • Çalışan iptal edildikten sonra uzun süre çalışan çalışanlar için bildirimlerin iptal yönetimi iyileştirildi. (aosp/1228346)

Sürüm 2.3.1

Sürüm 2.3.1

5 Şubat 2020

androidx.work:work-*:2.3.1 yayınlanır. 2.3.1 sürümü bu taahhütleri içerir.

Hata düzeltmeleri

  • Ön planda bir Service etkinken çalışan uzun süreli Worker'ler için Notification'lerin yaşam döngüsünü daha iyi yönetin. (aosp/1218539, b/147249312)
  • WorkManager artık androidx.sqlite:sqlite-framework:2.1.0 kararlı sürümüne bağlı. (aosp/1217729)
  • ForegroundInfo içinde foregroundServiceType kullanıldığında AndroidManifest.xml içinde bir 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 bu yana herhangi bir değişiklik içermeden yayınlandı. 2.3.0 sürümü bu taahhütleri içerir.

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

  • ListenableWorker#setForegroundAsync() üzerinden uzun süren veya önemli çalışmalar için destek.
  • ListenableWorker#setProgressAsync() üzerinden çalışan ilerlemesi için destek.
  • WorkManager artık kitaplığın bir parçası olarak ek lint kuralları paketliyor. Bu kurallar, hataları erken yakalamanıza yardımcı olur.

Sürüm 2.3.0-rc01

8 Ocak 2020

androidx.work:work-*:2.3.0-rc01 yayınlanır. 2.3.0-rc01 sürümü bu taahhütleri içerir.

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

Hata düzeltmeleri

  • work-testing yapı artık work-runtime-ktx için bir api bağımlılığı tanımlar. (aosp/1194410)

Sürüm 2.3.0-beta02

18 Aralık 2019

androidx.work:work-*:2.3.0-beta02 yayınlanır. 2.3.0-beta02 sürümü bu taahhütleri içerir.

Yeni özellikler

  • Kurtarılamayan SQLite istisnaları için daha iyi bir hata mesajı eklendi. (aosp/1185777)
  • İsteğe bağlı başlatma kullanılırken androidx.work.impl.WorkManagerInitializer içerik sağlayıcısının AndroidManifest.xml'dan kaldırılmasını sağlayan bir lint kuralı eklendi. (aosp/1167007)
  • enqueueUniquePeriodicWork() yerine PeriodicWorkRequest için enqueue() kullanıldığında bir 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, önemli bir değişikliktir. Bu sayede, uzun süre çalışan birden fazla Worker'yi paralel olarak çalıştırabilirsiniz. WorkManager, sağlanan Notification'ların kullanım sürelerini de daha iyi yönetir. (b/145473554, aosp/1181208, asop/1181216, asop/1183577)

Hata düzeltmeleri

  • AlarmManager uygulamasında alarmların doğru şekilde temizlenmemesine yol açan bir hata düzeltildi. (aosp/1156444)
  • Boş bir WorkRequest listesinin yanlış 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 sürümünü kullanıyor.

Sürüm 2.3.0-beta01

20 Kasım 2019

androidx.work:work-*:2.3.0-beta01 yayınlanır. 2.3.0-beta01 sürümü bu taahhütleri içerir.

Yeni özellikler

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

Sürüm 2.3.0-alpha03

23 Ekim 2019

androidx.work:work-*:2.3.0-alpha03 yayınlanır. 2.3.0-alpha03 sürümü bu taahhütleri içerir.

Yeni özellikler

  • AndroidManifest.xml'ye başka bir bileşen kaydetmenize gerek kalmadan WorkRequest'leri iptal etmenizi kolaylaştıran WorkManager.createCancelPendingIntent() API eklendi. Bu API, özellikle Notification'lardan WorkRequest'leri iptal etmeyi kolaylaştırır. Bu özelliğin 2.3.0 sürümünde yeni ön plan API'leriyle birlikte kullanılabileceğini umuyoruz.
  • WorkManager artık androidx.room:*:2.2.0 kararlı sürümüne bağlıdır.

API değişiklikleri

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

Hata düzeltmeleri

  • İşlem dışında setTransactionSuccessful() çağrısının gereksiz yere yapılmasından kaynaklanan bir hata düzeltildi. Bu durum, nadiren gerçekleşen taşıma işlemlerinde görülür. (b/142580433, aosp/1141737)

Sürüm 2.3.0-alpha02

9 Ekim 2019

androidx.work:work-*:2.3.0-alpha02 yayınlanır. 2.3.0-alpha02 sürümü bu taahhütleri içerir.

Yeni özellikler

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

API değişiklikleri

  • Data'daki containsKey API'si hasKeyWithValueOfType olarak yeniden adlandırılır. ktx kitaplığındaki ilgili uzantı yöntemi de yeniden adlandırıldı. (b/141916545)

Hata düzeltmeleri

  • WorkManager, sıraya eklenen WorkRequest sayısı planlama sınırlarına yaklaştığında işleri adil bir şekilde planlar. (aosp/1105766)
  • WorkManager, ListenableWorker#onStopped() işlevini yalnızca iş henüz tamamlanmadıysa çağırır. (b/140055777)
  • WorkManager artık bir işleyici kesintiye uğradığında veya son durumuna ulaştığında ilerleme bilgilerini kaldırır. (aosp/1114572)
  • Data artık çok daha kullanışlı bir toString()temsil şekline sahip. (b/140945323)
  • Data artık daha iyi bir equals() yöntemine sahip. Ayrıca Array türleri için deepEquals'ü de destekler. (b/140922528)
  • WorkManager artık dahili veritabanını ve tercih dosyalarını yedekleme olmayan bir dizinde saklar. (b/114808216)

Sürüm 2.3.0-alpha01

22 Ağustos 2019

androidx.work:work-*:2.3.September 5, 20190-alpha01 yayınlanır. Bu sürüme dahil edilen taahhütleri burada bulabilirsiniz.

Yeni özellikler

  • ListenableWorker'ler artık setProgressAsync() API'si aracılığıyla ilerleme durumunu ayarlayabilir. Ayrıca CoroutineWorker'de ilgili bir suspend-ing setProgress API'si ve RxWorker'da Single<Void> döndüren bir setProgress eklendi. Bu yeni API'ler sayesinde çalışanlar, karşılık gelen bir getProgress API'si olan WorkInfo üzerinden ilerleme bilgilerini aktarabilir. (b/79481554)
  • Data, Worker'ye gönderilen 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 için sürüm garantisi bulunmadığından bu anahtarı kalıcı tutmamalı veya uygulamalar arasında IPC için kullanmamalısınız. Yalnızca aynı uygulamanın birden fazla işlemi arasında kullanılması güvenlidir.
  • Configuration.setInputMergerFactory aracılığıyla InputMergerFactory belirtme özelliği eklendi. (b/133273159)

API değişiklikleri

  • Bir WorkerFactory, daha önce çağrılan bir ListenableWorker örneği döndürürse WorkManager bir IllegalStateException örneği atar. (b/139554406)
  • ListenableFuture iptaliyle ve ListenableWorker'deki onStopped() geri aramasıyla ilgili doküman güncellemeleri. (b/138413671)

Hata düzeltmeleri

  • İşlemdeki planlayıcı artık idle kısıtlaması olan WorkRequest öğelerini yoksayar. 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 değerini doğru şekilde kullanıyor. (aosp/1090749)

Sürüm 2.2.0

Sürüm 2.2.0

15 Ağustos 2019

androidx.work:work-*:2.2.0 yayınlanır. Bu sürüme dahil edilen taahhütleri burada bulabilirsiniz.

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

2.2.0'daki 2.1.0'a kıyasla önemli değişiklikler

androidx.work:work-gcm:2.2.0, Google Play Hizmetleri API düzeyleri 22 ve altı için kullanılabilirken GCMNetworkManager'ın planlayıcı olarak kullanılmasını destekleyen yeni bir Maven yapısıdır. Bu, eski API sürümlerinde daha güvenilir ve performanslı arka plan işleme olanağı sunan isteğe bağlı bir bağımlılıktır. Uygulamanız Google Play Hizmetleri kullanıyorsa GCMNetworkManager desteğini otomatik olarak almak için bu bağımlılığı gradle dosyanıza ekleyin. Play Hizmetleri kullanılamıyorsa WorkManager, eski cihazlarda AlarmManager'a geri dönmeye devam eder.

Sürüm 2.2.0-rc01

30 Temmuz 2019

androidx.work:work-*:2.2.0-rc01 yayınlanır. Bu sürüme dahil edilen taahhütleri burada bulabilirsiniz.

Hata düzeltmeleri

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

Sürüm 2.2.0-beta02

19 Temmuz 2019

androidx.work:work-*:2.2.0-beta02 yayınlanır. Bu sürüme dahil edilen taahhütleri burada bulabilirsiniz.

Hata düzeltmeleri

  • 2.2.0-beta01 sürümünde yanlışlıkla eklenen jacoco bağımlılığı kaldırıldı.

Sürüm 2.2.0-beta01

17 Temmuz 2019

androidx.work:work-*:2.2.0-beta01 yayınlanır. Bu sürüme dahil edilen taahhütleri burada bulabilirsiniz.

Yeni özellikler

  • androidx.work:work-gcm:2.2.0-beta01, Google Play Hizmetleri API düzeyleri 22 ve altı için kullanılabilirken GCMNetworkManager'ın planlayıcı olarak kullanılmasını destekleyen yeni bir Maven yapısıdır. Bu, eski API sürümlerinde daha güvenilir ve performanslı arka plan işlemeye yardımcı olan isteğe bağlı bir bağımlılıktır. Uygulamanız Google Play Hizmetleri kullanıyorsa GCMNetworkManager desteğini otomatik olarak almak için bu bağımlılığı gradle dosyanıza ekleyin. Play Hizmetleri kullanılamıyorsa WorkManager, eski cihazlarda AlarmManager'a geri dönmeye devam eder.

Hata düzeltmeleri

  • Nvidia Shield K1 tabletlerde ağ durumunu izlerken IllegalArgumentException hatası için düzeltme. (aosp/1010188)

2.1.0 sürümü

2.1.0 sürümü

11 Temmuz 2019

androidx.work:work-*:2.1.0 yayınlanır. Bu sürüm, androidx.work:work-*:2.1.0-rc01 ile aynıdır.

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

  • work-runtime-ktx için artık Java 8 gereklidir. Sorunla karşılaşırsanız build.gradle dosyanıza şunları ekleyebilirsiniz: kotlinOptions { jvmTarget = "1.8" }
  • WorkManager için isteğe bağlı ilk kullanıma hazırlama özelliği eklendi. Bu özellik, WorkManager'ı yalnızca referans verildiğinde oluşturur. b/127497100 Projenizi isteğe bağlı başlatma için ayarlamak üzere:
    1. Otomatik başlatıcıyı devre dışı bırakın.
    2. Özel Application nesnenize Configuration.Provider 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ği sonlandırıldı. İsteğe bağlı başlatma işlemi yapmıyor olsanız bile yeni WorkManager.getInstance(Context) değişim cihazını aramak her zaman daha güvenlidir.
  • PeriodicWorkRequest artık ilk gecikmeleri destekliyor. İlk gecikme ayarlamak için PeriodicWorkRequest.Builder üzerinde setInitialDelay yöntemini kullanabilirsiniz. b/111404867
  • DelegatingWorkerFactory kullanarak bir veya daha fazla kayıtlı WorkerFactory'ye yetki verme özelliği eklendi. b/131435993
  • WorkManager'ın tüm dahili muhasebe işlemleri için kullandığı Executor öğesini Configuration.Builder.setTaskExecutor aracılığıyla özelleştirme özelliği eklendi.
  • work-testing yapıtında TestWorkerBuilder ve TestListenableWorkerBuilder kullanılarak birim test edilebilir Worker ve ListenableWorker sınıfları oluşturma özelliği eklendi.
    • work-testing'ün artık Kotlin'i bağımlılık olarak çektiğini ve varsayılan olarak birkaç Kotlin uzantısı içerdiğini unutmayın.
  • Çalıştırma deneme sayısı WorkInfo değerine eklendi. b/127290461
  • Data türleri artık bayt ve bayt dizileri depolayabilir ve alabilir. Bu işlem, Data nesnelerinin maksimum boyutunu DEĞİŞTİRMEYECEKTİR.
  • WorkManager artık Room 2.1.0'e bağlıdır. Bu, bazı veritabanı sorunlarını çözecektir.

Sürüm 2.1.0-rc01

27 Haziran 2019

androidx.work:work-*:2.1.0-rc01 yayınlanır. Bu sürüme dahil edilen taahhütleri burada bulabilirsiniz.

Hata düzeltmeleri

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

Sürüm 2.1.0-beta02

20 Haziran 2019

androidx.work:work-*:2.1.0-beta02 yayınlanır. Bu sürüme dahil edilen taahhütleri burada bulabilirsiniz.

Hata düzeltmeleri

  • TestListenableWorkerBuilder artık ListenableWorker örnekleri oluştururken doğru WorkerFactory değerini kullanıyor. b/135275844
  • İşlem sona erdiğinde WorkRequest'lerin yürütme zaman aralıklarında kaymalara neden olan bir hata düzeltildi. b/135272196

Sürüm 2.1.0-beta01

13 Haziran 2019

androidx.work:work-*:2.1.0-beta01 yayınlanır. Bu sürüme dahil edilen taahhütleri burada bulabilirsiniz.

Hata düzeltmeleri

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

Sürüm 2.1.0-alpha03

5 Haziran 2019

androidx.work:*:2.1.0-alpha03 yayınlanır.

Hata düzeltmeleri

  • PeriodicWorkRequest ile ilgili dokümanlar iyileştirildi.
  • WorkManagerTestInitHelper artık testler için doğru arka plan yürütücüyü kullanıyor.
  • Bazı cihazlarda büyük işlemlerle uğraşırken karşılaşılan SQLite sorunları için düzeltmeler. (b/130182503)
  • WorkManager'ın bağımlılıkları artık daha ayrıntılı. (b/133169148).
  • WorkManager'ı kullanarak işleri planlarken JobScheduler'ün uygulanmasında OEM'ye özgü hatalara yönelik geçici çözüm.
  • AlarmManager tabanlı planlayıcıda, daha önce nadir görülen kilitlenmelere neden olan hizmet yaşam süreleriyle ilgili iyileştirmeler yapıldı. (b/133313734)

Sürüm 2.1.0-alpha02

16 Mayıs 2019

WorkManager 2.1.0-alpha02 sürümü yayınlandı. Bu sürümde birkaç yeni API yer alıyor.

API Değişiklikleri

  • PeriodicWorkRequest artık ilk gecikmeleri destekliyor. İlk gecikme ayarlamak için PeriodicWorkRequest.Builder üzerinde setInitialDelay yöntemini kullanabilirsiniz. b/111404867

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

  • WorkManager'ın tüm dahili muhasebe işlemleri için kullandığı Executor öğesini Configuration.Builder.setTaskExecutor aracılığıyla ö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 sürümü yayınlandı. Bu sürümde birkaç yeni API yer alıyor. Bu sürümden itibaren 1.x sürümüne geri taşınmayacak yeni özellikler olacağını lütfen unutmayın. 2.x sürümüne geçmenizi öneririz.

API Değişiklikleri

  • WorkManager için isteğe bağlı ilk kullanıma hazırlama özelliği eklendi. Bu özellik, WorkManager'ı yalnızca referans verildiğinde oluşturur. b/127497100 Projenizi isteğe bağlı başlatma için ayarlamak üzere:
    1. Otomatik başlatıcıyı devre dışı bırakın.
    2. Özel Application nesnenize Configuration.Provider 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ği sonlandırıldı. İsteğe bağlı başlatma işlemi yapmıyor olsanız bile yeni WorkManager.getInstance(Context) değişim cihazını aramak her zaman daha güvenlidir.
  • work-testing yapıtında TestWorkerBuilder ve TestListenableWorkerBuilder kullanılarak birim test edilebilir Worker ve ListenableWorker sınıfları oluşturma özelliği eklendi.
    • work-testing'ün artık Kotlin'i bağımlılık olarak getirdiğini ancak varsayılan olarak birkaç Kotlin uzantısı da içerdiğini unutmayın.
  • Çalıştırma deneme sayısı WorkInfo değerine eklendi. b/127290461
  • Data türleri artık bayt ve bayt dizileri depolayabilir ve alabilir. Bu işlem, Data nesnelerinin maksimum boyutunu DEĞİŞTİRMEYECEKTİR.
  • CoroutineWorker.coroutineContext özelliği kullanımdan kaldırıldı. Bu alan CoroutineDispatcher olarak yanlış yazılmıştır. Askıya alma işlevinin gövdesinde istediğiniz coroutineContext'e kendiniz gidebileceğiniz için artık buna ihtiyacınız yoktur.
  • RxWorker.createWork() ve RxWorker.getBackgroundScheduler() artık @NonNull iade türleriyle ek açıklamaya sahip.

Sürüm 2.0.1

Sürüm 2.0.1

9 Nisan 2019

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

Sürüm 2.0.1-rc01

3 Nisan 2019

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

Hata Düzeltmeleri

  • Robolectric testleri artık WorkManager ile düzgün şekilde çalışıyor. b/122553577
  • JobScheduler öncesi API'lerde kısıtlama izlemenin temizlenmemesi nedeniyle ortaya çıkan uç durum çökmesi düzeltildi. b/129226383
  • Uzun iş zincirleriyle ilgili bir StackOverflowError düzeltildi. b/129091233
  • Esnek çalışma saatlerinin API 23'te desteklenmediğini belirtmek için PeriodicWorkRequest dokümanları güncellendi.
  • Kotlin dokümanlarında bazı bozuk bağlantılar düzeltildi.

Sürüm 2.0.0

Sürüm 2.0.0

20 Mart 2019

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

Sürüm 2.0.0-rc01

7 Mart 2019

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

AndroidX öncesi bağımlılıklar

Kotlin uzantılarını kullanma hakkında bilgi edinmek için KTX dokümanlarını inceleyin.
Referans dokümanları: Java
GroovyKotlin
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"
}
dependencies {
    val work_version = "1.0.1"

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

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

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

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

1.0.1 sürümü

1.0.1 sürümü

9 Nisan 2019

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

Bundan sonra 1.x dalında çok az güncelleme olacağından kullanıcıların WorkManager 2.x'e geçmesini önemle tavsiye ediyoruz. 1.x kitaplığı için yeni API'ler de yayınlanmayacaktır.

Sürüm 1.0.1-rc01

2 Nisan 2019

WorkManager 1.0.1-rc01 sürümü yayınlandı. Bu sürümde bazı hata düzeltmeleri yer almaktadır.

Hata Düzeltmeleri

  • Robolectric testleri artık WorkManager ile düzgün şekilde çalışıyor. b/122553577
  • JobScheduler öncesi API'lerde kısıtlama izlemenin temizlenmemesi nedeniyle ortaya çıkan uç durum çökmesi düzeltildi. b/129226383
  • Uzun iş zincirleriyle ilgili bir StackOverflowError düzeltildi. b/129091233

Sürüm 1.0.0

Sürüm 1.0.0

5 Mart 2019

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

Sürüm 1.0.0-rc02

21 Şubat 2019

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

Hata Düzeltmeleri

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

  • İşaretlenmemiş Exception atan Worker'ler artık doğru şekilde FAILED olarak işaretleniyor ve uygulama işlemini kilitlemiyor.

Sürüm 1.0.0-rc01

14 Şubat 2019

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

Hata Düzeltmeleri

  • AlarmManager tabanlı uygulama artık PeriodicWorkRequests için flex aralıklarını doğru şekilde dikkate alıyor. b/124274584

Sürüm 1.0.0-beta05

6 Şubat 2019

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

Hata Düzeltmeleri

  • API 23'te JobScheduler.getPendingJob(...) değerinin kullanıldığı bir durum düzeltildi. b/123893059
  • Android 5.1 (API düzeyi 22) veya önceki sürümleri çalıştıran cihazlarda NullPointerException sorunu düzeltildi. b/123835104

Sürüm 1.0.0-beta04

4 Şubat 2019

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

Hata Düzeltmeleri

  • AlarmManager tabanlı uygulama için PeriodicWork'ın planlaması iyileştirildi.
  • AlarmManager tabanlı uygulama kullanılırken WorkManager'ın kısıtlamaları doğru şekilde izleyemediği bir durum düzeltildi. b/123379508
  • AlarmManager tabanlı uygulama kullanılırken WorkManager'ın, işlem sona erdiğinde işi yeniden denemesi başarısız olduğu bir durum düzeltildi. b/123329850
  • AlarmManager tabanlı uygulama kullanılırken WorkManager'ın Wakelock'ları sızdırmasına neden olan bir durum düzeltildi.

Sürüm 1.0.0-beta03

25 Ocak 2019

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

Hata Düzeltmeleri

  • Bazı durumlarda çalışmanın düzgün şekilde yürütülmemesine neden olan bir gerileme 1.0.0-beta02 özelliğini kullanıma sunduk. b/123211993
  • Çalışmanın, bekleme zamanlamasını düzgün şekilde dikkate almadığı bir durum düzeltildi. b/122881597
  • Android 5.1 (API 22) veya daha eski sürümleri çalıştıran cihazlarda ConcurrentModificationException sorunu düzeltildi. Bu, 1.0.0-beta02'teki düzeltmenin devamı niteliğindedir. b/121345393
  • Manifestimizde bu ek açıklamanın eksik olduğu bazı bileşenler için exported=false eklendi.
  • WorkManager'ın işletim sistemiyle nasıl etkileşime geçtiğiyle ilgili bilgileri paket düzeyindeki belgelere ekledik.

Sürüm 1.0.0-beta02

15 Ocak 2019

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

Hata Düzeltmeleri

  • Android 6.0 (API düzeyi 23) çalıştıran cihazlarda dönemsel çalışmanın aralık başına birden fazla kez çalışabileceği uç durum düzeltildi. b/121998363
  • Android 5.1 (API düzeyi 22) veya daha eski sürümleri çalıştıran cihazlarda ConcurrentModificationException sorunu düzeltildi. b/121345393
  • Android 5.1 (API düzeyi 22) veya önceki sürümleri çalıştıran cihazlarda kısıtlamalar karşılanmadığı zaman çalışmanın hatalı şekilde yürütülmesi düzeltildi. b/122578012
  • Bazı uç durumlarda daha hızlı olması için iş tamamlama işlemi optimize edildi. b/122358129
  • WorkManager'ın kullandığı birden fazla LiveData örneği arasındaki olası yarış koşullarını gidermek için bir değişiklik eklendi.
  • 1.1.1-rc01 yerine Room bağımlılık 1.1.1 kullanılacak şekilde taşındı. Bu sürümler aynıdır. b/122578011

Sürüm 1.0.0-beta01

19 Aralık 2018

Bu sürümde API değişikliği yoktur. Bundan sonra, kritik bir sorun olmadığı sürece WorkManager'ın API'si bir sonraki sürüme kadar kararlı kalacak. Bu sürümde bazı hata düzeltmeleri yer almaktadır.

Hata Düzeltmeleri

  • Başarıyla tamamlanmış üst çalışmaların daha önce iptal edilen alt çalışmaları artık yayınlanmayacaktır. b/120811767
  • Düzgün şekilde başlatılmış günlük kaydı sınıfları (genellikle testler sırasında gösterilir).

Sürüm 1.0.0-alpha13

12 Aralık 2018

Bu sürüm, bazı Kotlin kullanıcıları için yararlı olacak küçük bir API değişikliği içerir.

API Değişiklikleri

  • androidx.work.Result, ListenableWorker sınıfının iç sınıfı olacak şekilde taşındı. Bu, Kotlin'in üst düzey Result sınıfıyla yeniden düzenleme çakışmalarını önler. Bu, API'de yapılan ve mevcut işlevleri etkileyen bir değişikliktir. b/120564418

API'de önemli değişiklikler

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

Sürüm 1.0.0-alpha12

5 Aralık 2018

Bu sürüm, bazı önemli API değişiklikleri içerir. Lütfen aşağıdaki Önemli API Değişiklikleri bölümüne bakın. Bu sürümün ilk beta sürümümüz olarak yayınlanması muhtemeldir. alpha12, kapsamlı doküman güncellemeleri de içerir.

API Değişiklikleri

  • Yeni bir yapı olan work-rxjava2, RxWorker özelliğini kullanıma sunar. Bu, Single<Payload> bekleyen bir ListenableWorker.
  • Firebase JobDispatcher desteği, desteğin sonlandırılacağı için kaldırıldı. Bu, beta sürümüne geçiş yaptığımızda work-firebase yapının artık güncellenmeyeceği anlamına gelir. Gelecekte alternatif bir yöntem eklemeyi planlıyoruz.
  • Payload, Result ile birleştirildi. Result artık Result.success() (veya Result.success(Data)), Result.failure() (veya Result.failure(Data)) ve Result.retry() aracılığıyla edinebileceğiniz üç somut uygulamaya sahip "mühürlü bir sınıf"tır. ListenableFuture'leriniz artık Payload yerine Result sonucunu veriyor. Workers, Data çıkışı için alıcı ve ayarlayıcı yöntemlerine sahip değildir. Bu, önemli bir değişikliktir.
  • Yavaş tetiklenen içerik URI'lerini daha iyi desteklemek için Constraints.Builder.setTriggerContentMaxDelay(long, TimeUnit) 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ı yöntemleri eklendi.
  • Operation.getException(), Operation.getThrowable() olarak yeniden adlandırıldı. Bu, önemli bir değişikliktir.
  • ContentUriTriggers sınıfı ve bu sınıfa referans veren yöntemler artık herkese açık olarak kullanılamaz. Bu, önemli bir değişikliktir.
  • API'yi kolaylaştırmak için WorkManager, WorkContinuation ve OneTimeWorkRequest içindeki varargs yöntemlerinin geri kalanı kaldırıldı. Olası derleme sorunlarını düzeltmek için mevcut değişkenli bağımsız değişkenlerinizi Arrays.asList(...) ile sarmalayabilirsiniz. Her yöntemin tek parametreli sürümlerini kullanmaya devam ediyoruz. Bu, önemli bir değişikliktir.
  • WorkContinuation.combine(OneTimeWorkRequest, *) varyant kaldırıldı. Kafa karıştırıcı bir API sunuyorlardı; mevcut combine yöntemleri daha anlaşılır. Bu, önemli bir değişikliktir.

Hata Düzeltmeleri

  • Marshmallow öncesi uygulamalar, halihazırda yürütülmekte olan bir görevin işlemden kaldırılmasından sonra kurtarma işleminde artık daha güvenilir.
  • observeForever üzerinden gözlemlenen LiveData, WorkManager üzerinden izlenir. Bu, Room kitaplığı düzeltmesinin geriye dönük bir taşımasıdır. b/74477406
  • Data.Builder.build(), serileştirilmiş nesne maksimum boyutunu aşarsa artık istisna atar. Bu durum daha önce yalnızca düzgün şekilde işleyemediğiniz arka plan iş parçacığında gerçekleşiyordu.
  • Durdurulan ve iptal edilen işler arasında daha fazla ayrım yapılır; getWorkInfoById(), ListenableWorker.onStopped() sırasında CANCELLED State ile bir WorkInfo döndürür.
  • null Result'leri ListenableWorker'de hata olarak değerlendirin. b/120362353
  • API 24 çalıştıran Shield Tablet'lerde bazen IllegalArgumentException hatası veren spekülatif düzeltme. b/119484416

API'de önemli değişiklikler

  • Firebase JobDispatcher desteği, desteğin sonlandırılacağı için kaldırıldı. Bu, beta sürümüne geçiş yaptığımızda work-firebase yapının artık güncellenmeyeceği anlamına gelir. Gelecekte alternatif bir yöntem eklemeyi planlıyoruz.
  • Payload, Result ile birleştirildi. Result artık Result.success() (veya Result.success(Data)), Result.failure() (veya Result.failure(Data)) ve Result.retry() aracılığıyla edinebileceğiniz üç somut uygulamaya sahip "mühürlü bir sınıf"tır. ListenableFuture'leriniz artık Payload yerine Result sonucunu veriyor. Workers, Data çıkışı için alıcı ve ayarlayıcı yöntemlerine sahip değildir.
  • Operation.await() ve ListenableFuture.await() Kotlin uzantı yöntemleri eklendi.
  • Operation.getException(), Operation.getThrowable() olarak yeniden adlandırıldı.
  • ContentUriTriggers sınıfı ve bu sınıfa referans veren yöntemler artık herkese açık olarak kullanılamaz.
  • API'yi kolaylaştırmak için WorkManager, WorkContinuation ve OneTimeWorkRequest içindeki varargs yöntemlerinin geri kalanı kaldırıldı. Olası derleme sorunlarını düzeltmek için mevcut değişkenli bağımsız değişkenlerinizi Arrays.asList(...) ile sarmalayabilirsiniz. Her yöntemin tek parametreli sürümlerini kullanmaya devam ediyoruz.
  • WorkContinuation.combine(OneTimeWorkRequest, *) varyant kaldırıldı. Kafa karıştırıcı bir API sunuyorlardı; mevcut combine yöntemleri daha anlaşılır.

Sürüm 1.0.0-alpha11

8 Kasım 2018

Bu sürüm, beta sürümünde kararlı API olacak birçok değişiklik içerir. Bu sürümde önemli API değişiklikleri vardır. Lütfen aşağıdaki Önemli API Değişiklikleri bölümüne bakın.

API Değişiklikleri

  • work-runtime-ktx yeni bir CoroutineWorker kullanıma sundu.
  • WorkStatus, WorkInfo olarak yeniden adlandırıldı. Tüm ilgili getStatus yöntem varyantları, ilgili getWorkInfo varyantları olarak yeniden adlandırıldı. Bu, önemli bir değişikliktir.
  • ListenableWorker.onStopped() artık kabul etmiyor, WorkRequest'un iptal edilip edilmediğini gösteren bir boole bağımsız değişkeni içerir. WorkManager artık bu ayrımı yapmıyor. Bu, önemli bir değişikliktir.
  • androidx.work.test paketi, androidx.work.testing paketi olarak yeniden adlandırıldı. Bu, önemli bir değişikliktir.
  • Constraints'teki ayarlayıcılar artık herkese açık API'nin bir parçası değildir. Bu, önemli bir değişikliktir.
  • WorkerParameters.getTriggeredContentUris() ve WorkerParameters.getTriggeredContentAuthorities() daha önce döndürülmüş dizilerdir. Bu yöntemler artık Koleksiyonlar döndürüyor. Bu, önemli bir değişikliktir.
  • ListenableWorker.onStartWork(), ListenableWorker.startWork() olarak yeniden adlandırıldı. Bu, önemli bir değişikliktir.
  • WorkStatus sınıfının kurucusu artık herkese açık API'nin bir parçası değildir. Bu, önemli bir değişikliktir.
  • Configuration.getMaxJobSchedulerID() ve Configuration.getMinJobSchedulerID() sırasıyla Configuration.getMinJobSchedulerId() ve Configuration.getMaxJobSchedulerId() olarak yeniden adlandırılır. Bu, önemli bir değişikliktir.
  • API'nin ergonomisini iyileştirmek için herkese açık API'ye çok sayıda @NonNull notu eklendi.
  • WorkContinuation oluşturmak zorunda kalmadan benzersiz OneTimeWorkRequest'leri sıraya eklemek için WorkManager.enqueueUniqueWork() API'yi ekleyin.
  • WorkManager üzerindeki enqueue ve cancel yöntemlerinin tüm varyantları artık yeni bir Operation türü döndürüyor. Bu, önemli bir değişikliktir.
  • enqueue'ün tüm varyantları artık WorkRequest için değişken sayıda bağımsız değişken kabul etmiyor. Bu, önemli bir değişikliktir. Bunun yerine koleksiyonları kullanın. Mevcut kodu değiştirmek için Arrays.asList() simgesini kullanabilirsiniz. Bunu, API yüzeyini ve yöntem sayısını azaltmak için yaptık.
  • İşlem başına birden fazla kez initialize WorkManager yapmaya çalışmak artık IllegalStateException ile sonuçlanacaktır. Bu, önemli bir değişikliktir.

Hata Düzeltmeleri

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

API'de önemli değişiklikler

  • WorkStatus, WorkInfo olarak yeniden adlandırıldı. Tüm ilgili getStatus yöntem varyantları, ilgili getWorkInfo varyantları olarak yeniden adlandırıldı.
  • ListenableWorker.onStopped() artık kabul etmiyor, WorkRequest'un iptal edilip edilmediğini gösteren bir boole bağımsız değişkeni içerir. WorkManager artık bu ayrımı yapmıyor.
  • androidx.work.test paketi, androidx.work.testing paketi olarak yeniden adlandırıldı.
  • Constraints'teki ayarlayıcılar artık herkese açık API'nin bir parçası değildir.
  • WorkerParameters.getTriggeredContentUris() ve WorkerParameters.getTriggeredContentAuthorities() daha önce döndürülmüş dizilerdir. Bu yöntemler artık Koleksiyonlar döndürüyor.
  • ListenableWorker.onStartWork(), ListenableWorker.startWork() olarak yeniden adlandırıldı.
  • WorkStatus sınıfının kurucusu artık herkese açık API'nin bir parçası değildir.
  • Configuration.getMaxJobSchedulerID() 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 tüm varyantları artık WorkRequest için değişken sayıda bağımsız değişken kabul etmiyor.
  • İşlem başına birden fazla kez initialize WorkManager yapmaya çalışmak artık IllegalStateException ile sonuçlanacaktır.

Sürüm 1.0.0-alpha10

11 Ekim 2018

Bu sürüm, geliştirici tarafından kontrol edilen eşzamansız çalışmaları destekler. Bu sürümde önemli API değişiklikleri vardır. Lütfen aşağıdaki Önemli API Değişiklikleri bölümüne bakın.

WorkManager'ın alfa döneminin son aşamalarına girmesini bekliyoruz. API'nin beta sürümünde kararlı olmasını bekliyoruz. Lütfen sorun izleyicimize geri bildirim gönderin.

API Değişiklikleri

  • Önceden var olan tüm deprecated yöntemleri ve sınıfları (özellikle varsayılan Worker kurucusu) kaldırıldı. Bu, API'de yapılan ve mevcut uygulamaların çalışmasını engelleyen bir değişikliktir.
  • NonBlockingWorker, ListenableWorker olarak yeniden adlandırıldı. Bu sınıf artık herkese açık ve kullanıma hazır.
    • ListenableWorker, ana iş parçacığında çağrılan ListenableFuture<Payload> onStartWork() adlı soyut bir yönteme erişim sağlar. İşi başlatmak ve aksama olmadan işlemek size bağlıdır. İşlemi tamamladığınızda ListenableFuture öğesini uygun şekilde güncellemeniz gerekir. ListenableFuture referans uygulamaları, alpha02'deki Futures paketinde sağlanır (WorkManager bölümünün altına bakın).
    • Worker, ListenableWorker'u genişletir ve soyut bir Result doWork() yöntemiyle eskisi gibi çalışmaya devam eder.
    • Bazı yöntemler ve üyeler Worker'ten ListenableWorker'a taşındı.
    • Kotlin coroutine'lerini (stabil sürümleri yayınlandıktan sonra) ve RxJava2'yi kullanan ListenableWorker'ler için yakında referans uygulamalar sağlayacağız.
  • WorkerFactory arayüzü ve DefaultWorkerFactory somut uygulaması, WorkerFactory adlı soyut bir sınıfta birleştirildi. Uygulama, kullanıcı tarafından oluşturulan tüm WorkerFactory örnekleri için son çare olarak varsayılan yansımaya dayalı davranışın çağrılmasını sağlar. Bu, önemli bir değişikliktir.
  • WorkManager.synchronous() ve WorkContinuation.synchronous() ile ilgili tüm yöntemler kaldırıldı. API'deki birçok yöntemin döndürülen türü olarak ListenableFuture<Void> eklendi. Bu, API'de yapılan ve mevcut uygulamaların çalışmasını engelleyen bir değişikliktir.
    • Artık ListenableFuture kullanarak verileri senkronize olarak alabilir ve gözlemleyebilirsiniz. Örneğin, WorkManager.enqueue() önceden void döndürür iken artık ListenableFuture<Void> döndürüyor. İşlem tamamlandıktan sonra kodu çalıştırmak için ListenableFuture.addListener(Runnable, Executor) veya ListenableFuture.get() işlevini çağırabilirsiniz.
    • Bu ListenableFuture değerleri, işlemin başarılı olup olmadığını değil, yalnızca işlemin tamamlandığını gösterir. Bu bilgileri öğrenmek için yine WorkManager yöntemlerini zincirleme yapmanız gerekir.
    • Bu nesnelerdeki cancel() çağrıları, kafa karıştırıcı ve mantıklı bir şekilde açıklamaları zor oldukları için (operasyonu mu yoksa sonuçta ortaya çıkan çalışmayı mı iptal ediyorsunuz?) yoksayın. Bu, Future'nin sözleşmesi kapsamındadır.
    • Senkron getStatus* yöntemleriyle eşleşmeyi sağlamak için ListenableFuture varyantları sağladık ve LiveData döndüren mevcut yöntemlerin adını, adında açıkça "LiveData" olacak şekilde yeniden adlandırdık (örneğin, getStatusesByIdLiveData(UUID)). Bu, API'de yapılan önemli bir değişikliktir.

Hata Düzeltmeleri

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

API'de önemli değişiklikler

  • Önceden var olan tüm deprecated yöntemleri ve sınıfları (özellikle varsayılan Worker kurucusu) kaldırıldı.
  • WorkerFactory arayüzü ve DefaultWorkerFactory somut uygulaması, WorkerFactory adlı soyut bir 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() LiveData iade eder.

Sürüm 1.0.0-alpha09

19 Eylül 2018

Bilinen Sorun

"'META-INF/proguard/androidx-annotations.pro' işletim sisteminden bağımsız yoluna sahip birden fazla dosya bulundu" sorunuyla karşılaşırsanız alpha10'da sorunu çözene kadar geçici bir çözüm olarak lütfen aşağıdakileri gradle dosyanıza ekleyin:

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

Hata Düzeltmeleri

  • "100 iş" hatası için gereken başka bir düzeltme eklendi. b/115560696
  • Yarış koşullarından kaynaklanan yabancı anahtar kısıtlaması hataları için bazı düzeltmeler eklendi. b/114705286
  • Temel Worker için yetki verilmiş ConstraintTrackingWorker.onStopped(boolean) çağrıları. b/114125093
  • Firebase JobDispatcher için doğru minimum bekleme süresini zorunlu kılma. b/113304626
  • İyileştirilmiş mesaj dizileri, kitaplığın dahili olarak garanti edilmesini sağlar.
  • LiveData değerinin şirket içinde tekilleştirilmesiyle ilgili olası sorunu düzeltin.

API Değişiklikleri

  • Artık WorkManager.Configuration kapsamında bir 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 olur.
    • Worker ve NonBlockingWorker için varsayılan kurucular artık desteği sonlandırılmış olarak işaretlenmiştir. Lütfen yeni kurucuyu (Worker(Context, WorkerParameters)) kullanın ve super(Context, WorkerParameters) işlevini çağırın. WorkManager'ın gelecekteki sürümlerinde varsayılan kurucu kaldırılacaktır.
  • Yeni ListenableFuture yapısını dahili olarak kullanmaya başladık (Guava bağımlılıkları içermez). ListenableFutures'ı gelecek sürümlerde API'ye sunacağız. Bu değişiklik, NonBlockingWorker'ün gizlenmesinin kaldırılmasını destekleyecektir.
  • TestDriver.setInitialDelayMet(UUID) ve TestDriver.setPeriodDelayMet(UUID) aracılığıyla TestDriver'te zamanlanmış çalışmayı tetikleme özelliğini ekleyin. b/113360060

Zararlı Değişiklikler

  • Varsayılan Worker ve NonBlockingWorker kurucularının desteği sonlandırıldı. Lütfen en kısa sürede yeni kurucuya geçin. Gelecekteki sürümlerde varsayılan kurucu kaldırılacaktır.

Sürüm 1.0.0-alpha08

27 Ağustos 2018

Hata Düzeltmeleri

  • Doğrudan önyükleme sırasında başlatılmaması için WorkManager bileşenleri doğrudan önyükleme bilincine sahip olmayan olarak açıkça etiketlendi. Gelecekte, doğrudan önyükleme bilincine sahip bir WorkManager sürümü sunacağız. b/112665532
  • Yeniden denemeye çalışılan çalışmanın çalışmamasına neden olan sorun düzeltildi. b/112604021
  • Periyodik çalışmanın tekrar tekrar yürütülmemesi sorunu (yukarıdaki sorunla ilgili) düzeltildi. b/112859683
  • Uygulama işlemi zaten çalışıyorken geri çekilme politikaları dikkate alınır.
  • Data içindeki istisna mesajları, sınırın 10 KB olduğunu belirtecek şekilde düzeltildi.
  • JobScheduler işlemenin tamamlanmasında yaşanan gecikmeyi hesaba katmak için Configuration.setMaxSchedulerLimit(int) maksimum değerini 50'ye düşürdük. b/112817355

Sürüm 1.0.0-alpha07

16 Ağustos 2018

Hata Düzeltmeleri

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

API Değişiklikleri

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

Sürüm 1.0.0-alpha06

1 Ağustos 2018

Hata Düzeltmeleri

  • İşi planlarken veritabanı kilidini önleme. b/111801342
  • Uyku modundayken PeriodicWork'ün planlandığı gibi çalışmamasına neden olan hata düzeltildi. b/111469837
  • Kısıtlamaları izlerken WorkManager'ün kilitlenmesine neden olan bir yarış koşulu düzeltildi. googlecodelabs/android-workmanager/issues/56
  • WorkRequest.Builder#build() kullanırken benzersiz WorkRequest'ler oluşturun. b/111408337
  • RescheduleReceiver kullanımını yalnızca buna ihtiyacı olan WorkRequest'ler olduğunda 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 ek açıklamaya sahip. Bunun yerine, tekil nesne manuel olarak başlatılırken düzgün şekilde başlatılmazsa yöntem bir IllegalStateException hatası atar. Bu, API'de yapılan önemli bir değişikliktir.
  • WorkManager ayrıntı düzeyini kontrol edebilen yeni bir API (Configuration.Builder.setMinimumLoggingLevel(int)) eklendi. WorkManager varsayılan olarak Log.INFO ve sonraki sürümleri günlüğe kaydeder.
  • Data.getString() işlevinin imzası değiştirildi. Artık varsayılan bir değer almıyor (örtülü olarak null). Bu, API'de yapılan ve mevcut uygulamaları etkileyen bir değişikliktir.
  • Yalnızca şirket içi kullanım için gereken bazı yöntemleri @hide olarak işaretledi. Constraints kurucusu, Data.toByteArray() ve Data.fromByteArray(byte[]) bu kapsamdadır. Bu, API'de yapılan ve mevcut uygulamaların çalışmasını engelleyen bir değişikliktir.

Hata Düzeltmeleri

  • WorkManager artık bilinen otomatik yedekleme durumlarında iş yürütmez. Bu durum kilitlenmeye neden olmuş olabilir. b/110564377
  • JobScheduler kullanılırken PeriodicWorkRequest'lerin iki kez planlanması sorunu düzeltildi. b/110798652
  • Cihaz uyku moduna girdikten sonra PeriodicWorkRequest'ların doğru şekilde yürütülmemesiyle ilgili sorun düzeltildi. b/111469837
  • Firebase JobDispatcher kullanılırken ilk gecikmelerle ilgili sorun düzeltildi. b/111141023
  • Bazı olası yarış koşulları ve zamanlama sorunları düzeltildi.
  • Artık ihtiyaç duyulmayan BroadcastReceiver'leri doğru şekilde serbest bıraktı.
  • Uygulamalar zorla kapatıldıktan sonra yeniden başlatıldığında yeniden planlama performansı optimize edildi.
  • Belirli bir WorkRequest öğesinin sıraya eklenmesinden önce veya sonra TestScheduler.setAllConstraintsMet(UUID) öğesinin çağrılmasına izin verilir. b/111238024

Zararlı Değişiklikler

  • WorkManager.getInstance() artık @Nullable yerine @NonNull ile ek açıklamaya sahip.
  • Data.getString() imzasının artık varsayılan değer almaması için imza değiştirildi (örtülü olarak null).
  • Yalnızca şirket içi kullanım için gereken bazı yöntemleri @hide olarak işaretledi. Constraints kurucusu, Data.toByteArray() ve Data.fromByteArray(byte[]) bu kapsamdadır.

Sürüm 1.0.0-alpha04

26 Haziran 2018

Hata Düzeltmeleri

  • AlarmManager tabanlı uygulama kullanılırken PeriodicWorkRequest'ler artık doğru şekilde yeniden planlanıyor.
  • Zorunlu durdurma veya yeniden başlatma işleminden sonra tüm çalışanları yeniden planlarken olası bir ANR düzeltildi. b/110507716
  • Çeşitli WorkManager API'lerine boşluk değeri olabilirlik ek açıklamaları eklendi. b/110344065
  • İşleyici yürütme sırasında oluşan ve yakalanmayan istisnaları günlüğe kaydetme. b/109900862
  • WorkManager'ın eski bir sürümüne geri dönmeye karar vermeniz durumunda veritabanını bozan taşıma işlemlerine izin verildi. b/74633270
  • Yinelenen gizli etiketler oluşturulurken taşıma işleminin kilitlenmesi sorunu düzeltildi. Bu, yalnızca aynı gizli etiket biçimini kendiniz kullandıysanız ortaya çıkan çok nadir bir sorundur.

Sürüm 1.0.0-alpha03

19 Haziran 2018

Hata Düzeltmeleri

  • AlarmManager tabanlı uygulamada bir yarış koşulu düzeltildi. b/80346526.

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

  • İçerik URI tetikleyicileri olan işler artık yeniden başlatmalarda devam eder. b/80234744

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

  • WorkRequest yeniden sıraya eklenirken kilitlenme sorunu düzeltildi. b/109572353.

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

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

API Değişiklikleri

  • WorkContinuation.getStatuses()'un senkronize sürümü olan getStatusesSync() eklendi.
  • Worker, kullanıcı tarafından başlatılan iptal işlemi ile işletim sistemi tarafından geçici olarak durdurma işlemini ayırt edebilir. Herhangi bir durak istendiyse 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 yayınlanır.
  • JobScheduler veya AlarmManager adresine kaç işin gönderilebileceğini zorunlu kılmak için Configuration.Builder.setMaxSchedulerLimit(int maxSchedulerLimit) eklendi. Bu sayede WorkManager, mevcut tüm JobScheduler slotlarınızı alamaz.
  • WorkManager'nin kullanabileceği güvenli bir JobScheduler iş kimliği aralığı 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'e bağlı kitaplıklar, dahili durumun daha fazla temizlenmesi için WorkManager.getLastCancelAllTimeMillis() kullanarak bu yöntemin en son ne zaman çağrıldığını sorgulayabilir.
  • Tamamlanan işleri dahili veritabanından kaldırmak için WorkManager.pruneWork() eklendi. b/79950952, b/109710758

Davranış Değişiklikleri

  • Tüm WorkRequest öğeleri için Worker öğesinin tam nitelikli sınıf adı olan bir örtük etiket eklendi. Bu sayede, tag olmadan veya id mevcut olmadığında WorkRequest'leri kaldırabilirsiniz. b/109572351

Zararlı 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 sahiptir.

Sürüm 1.0.0-alpha02

24 Mayıs 2018

Hata Düzeltmeleri

  • State.isFinished() tarihinde NullPointerException sorunu düzeltildi. b/79550068
  • Worker'lerin Application.onCreate() tarihinde yeniden planlanmasına neden olan sorun düzeltildi. b/79660657
  • İşletim sisteminin izin verdiğinden daha fazla iş planlayabileceğiniz bir sorun düzeltildi. b/79497378
  • Worker ile ilişkili uyanık kalma kilitlerinin temizlenmesi arka plan iş parçacığına taşındı.
  • Beklemedeki tüm işler tamamlandığında AlarmManager uygulaması artık doğru şekilde temizleniyor.
  • İngilizce olmayan yerel ayarları etkileyen temizleme SQL sorguları düzeltildi. b/80065360
  • Data sürümünde float için destek eklendi. b/79443878
  • Data.Builder.putAll() artık Builder örneğini döndürüyor. b/79699162
  • Belgelerde daha fazla javadoc ve düzeltme. b/79691663

API Değişiklikleri

  • Worker'ler durdurulmaya tepki verebilir. Worker.isStopped(), bir Worker'un durdurulup durdurulmadığını kontrol etmek için kullanılabilir. Worker.onStopped(), hafif temizleme işlemleri gerçekleştirmek için kullanılabilir.
  • Worker.getTags() API, Worker ile ilişkili bir Set etiketi 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 korunur.
  • WorkManager uzantısı, androidx.work.ktx paketinden androidx.work paketine taşındı. Eski uzantılara verilen destek sonlandırılmıştır ve bu uzantılar gelecekteki bir sürümde kaldırılacaktır.
  • Configuration.withExecutor() desteği sonlandırıldı. Bunun yerine Configuration.setExecutor()'ü 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.