WorkManager

WorkManager API, güvenilir şekilde çalışması gereken ertelenebilir, eşzamansız görevlerin planlanmasını kolaylaştırır. Bu API'ler, bir görev oluşturmanızı ve iş kısıtlamaları karşılandığında çalışması için WorkManager'a devretmenizi sağlar.
Son Güncelleme Kararlı Sürüm Serbest Bırakma Adayı Beta Sürümü Alfa Sürümü
24 Ocak 2024 2.9.0 - - 2.10.0-alpha01

Bağımlılıkları bildirme

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

Uygulamanızın veya modülünüz için build.gradle dosyasına ihtiyaç duyduğunuz yapıların bağımlılıklarını ekleyin:

Modern

dependencies {
    def work_version = "2.9.0"

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

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

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

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

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

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

Kotlin

dependencies {
    val work_version = "2.9.0"

    // (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 belgelerini inceleyin.

Bağımlılıklar hakkında daha fazla bilgi edinmek için Derleme Bağımlılıkları Ekleme bölümüne bakın.

Geri bildirim

Geri bildiriminiz Jetpack'i daha iyi hale getirmemize yardımcı oluyor. Yeni sorunlar keşfederseniz veya bu kitaplığı nasıl geliştirebileceğimizle ilgili fikirleriniz varsa bize bildirin. Yeni bir sorun oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.

Yeni sayı oluşturma

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

Sürüm 2.10

Sürüm 2.10.0-alpha01

24 Ocak 2024

androidx.work:work-*:2.10.0-alpha01 yayınlandı. 2.10.0-alpha01 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Geliştiriciler, Constraints.setRequiredNetworkRequest yöntemini kullanarak bir çalışan için kısıtlama olarak NetworkRequest değerini belirtebilir. Bu, söz konusu çalışanın hangi ağda çalışması gerektiği üzerinde daha ayrıntılı bir denetime olanak tanır.

API Değişiklikleri

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

Sürüm 2.9

Sürüm 2.9.0

29 Kasım 2023

androidx.work:work-*:2.9.0 yayınlandı. 2.9.0 sürümü bu kayıtları içerir.

2.8.0'dan sonraki önemli değişiklikler

  • Flow-sn üzerinden gözlemlenebilirlik. Çalışanın ilerlemesi artık LiveData yerine WorkManager.getWorkInfosFlow aracılığıyla ve benzer yöntemlerle Akışla gözlemlenebilir.
  • WorkManager artık bir çalışanın neden daha önce durdurulduğuna dair ipucu sağlıyor. getStopReason() yöntemi aracılığıyla bir çalışanın kendisinden veya getStopReason() aracılığıyla WorkInfo üzerinden sorgulanabilir.
  • setNextScheduleTimeOverride aracılığıyla periyodik çalışanların hassas şekilde planlanması. Bu, bir sonraki Periyodik çalışma programının dinamik hesaplamasına olanak tanır. Bu özellik, uyarlanabilir yenileme süreleri, özel yeniden deneme davranışı veya bir haber feed'i çalışanının, kullanıcı her sabah kayma olmadan uyanmadan önce çalışmasını sağlamak gibi gelişmiş özellikleri uygulamak için kullanılabilir. Şu anda çalışmakta olan bir çalışanın iptal edilmesini önlemek ve bir sonrakini planlamak için bu tekniklerle ExistingPeriodicWorkPolicy.UPDATE kullanılmalıdır.
  • WorkManager'ın ileti dizisi eşleştirme üretimiyle testi. ExecutorsMode.PRESERVE_EXECUTORS, Configuration içinde ayarlanan yürütücüleri korumak ve gerçek ana iş parçacığını kullanmak için initializeTestWorkManager ürününde kullanılabilir.
  • CoroutineWorker gibi eş yordam API'leri, ek yapı çalışma-çalışma zamanı-ktx'inden ana yapı çalışma zamanına taşındı. iş-çalışma zamanı-ktx artık boş.

API Değişiklikleri

  • stopReason, WorkInfo klasörüne eklendi. stopReason, çalışan çalıştırıldıktan sonra kullanılabilir hale gelir. Bir çalışan durdurulduğunda uygulamanın kendisi çok hızlı bir şekilde durdurulabileceği için, stopReason kullanılabilir bir şekilde raporlanmasında yararlı olabilir. (I21386)
  • Clock öğesinin yapılandırma aracılığıyla ayarlanmasına ve Çalışan testlerinin yürütme sırasının yönetilmesinde kullanılmasına izin verir. (Ic586e)
  • ListenableWorker öğesine, çalışanın neden durdurulduğuna dair ipucu veren getStopReason() yöntemi eklendi. (I07060)
  • CloseGuard'ın kaynaklar sızıntısı ile ilgili uyarısını önlemek için WorkManagerTestInitHelper#closeWorkDatabase() eklendi. (Ia8d49)
  • WorkInfo ürününün oluşturucusu artık herkese açık. Bu nedenle, test sırasında faydalı 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 süresi yapısında kullanılabilir. (I71a9a)
  • Periyodik çalışma programlarının doğru bir şekilde ayarlanmasını sağlayan setNextScheduleTimeOverride yöntemi eklendi (I3b4da)
  • Planlanan çalışma zamanı bilgisini almak için getNextScheduleTimeMillis eklendi ve WorkInfo eklendi. (I797e4)
  • İlk gecikme ve dönemsellik bilgileri WorkInfo öğesine eklenir. (I52f2f)
  • getWorkInfosByTagFlow, getWorkInfoByIdFlow, getWorkInfosForUniqueWorkFlow, getWorkInfosFlow (If122a) yöntemleriyle Akışlar aracılığıyla çalışanları gözlemleme yöntemi eklendi
  • Constraints oluşturucularına ve özelliklerine eksik @RequiresApi(...) ek açıklaması eklendi. Bunlar artık WorkManager ürününün ilk sürümlerinde bulunan ve Constraints.Builder ürünündeki set belirleyicilerde bulunan ilgili ek açıklamalarla uyumlu. (I6d7d2)
  • WorkManager, artık Content URI çalışanlarına JobScheduler içinde garantili alanlar vermek için ayrı bir sınır uyguluyor. Böylece, yüksek yük altında içerik güncellemelerinin eksik olmamasını sağlayabilirsiniz. Sınır, Configuration.Builder.setContentUriTriggerWorkersLimit aracılığıyla yapılandırılabilir. (Ic128f)
  • Sınırlamalar WorkInfo etiketine eklendi. (I162c0)

Sürüm 2.9.0-rc01

18 Ekim 2023

androidx.work:work-*:2.9.0-rc01 yayınlandı. 2.9.0-rc01 sürümü bu kayıtları içerir.

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

Sürüm 2.9.0-beta01

6 Eylül 2023

androidx.work:work-*:2.9.0-beta01 yayınlandı. 2.9.0-beta01 sürümü bu kayıtları içerir.

API Değişiklikleri

Sürüm 2.9.0-alpha02

26 Temmuz 2023

androidx.work:work-*:2.9.0-alpha02 yayınlandı. 2.9.0-alpha02 sürümü bu kayıtları içerir.

Yeni Özellikler

  • WorkManager artık bir çalışanın neden daha önce durdurulduğuna dair ipucu sağlıyor. getStopReason() yöntemi aracılığıyla bir çalışanın kendisinden veya getStopReason() aracılığıyla WorkInfo üzerinden sorgulanabilir.

API Değişiklikleri

  • stopReason, WorkInfo klasörüne eklendi. Çalışan çalıştırıldıktan stopReason sonra kullanılabilir hale gelir. Bir çalışan durdurulduğunda uygulamanın kendisi çok hızlı bir şekilde durdurulabileceği için, stopReason kullanılabilir şekilde raporlanmasında yararlı olabilir. (I21386)
  • Saat'in yapılandırma aracılığıyla ayarlanmasına ve Çalışan testlerinin yürütme sırasının yönetilmesinde kullanılmasına izin verir. (Ic586e)
  • ListenableWorker öğesine, çalışanın neden durdurulduğuna dair ipucu veren getStopReason() yöntemi eklendi. (I07060)
  • CloseGuard'ın kaynaklar sızıntısı ile ilgili uyarısını önlemek için WorkManagerTestInitHelper#closeWorkDatabase() eklendi. (Ia8d49)

Hata Düzeltmeleri

  • TestDriver kullanarak overrideNextScheduleTime atlama olanağı eklendi ve test edilebilirlik ile ilgili sorunlar düzeltildi. (Ic2905)

Sürüm 2.9.0-alpha01

7 Haziran 2023

androidx.work:work-*:2.9.0-alpha01 yayınlandı. 2.9.0-alpha01 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Flow-sn üzerinden gözlemlenebilirlik. Çalışanın ilerlemesi artık LiveData yerine WorkManager.getWorkInfosFlow aracılığıyla ve benzer yöntemlerle Akışla gözlemlenebilir.
  • setNextScheduleTimeOverride aracılığıyla periyodik çalışanların hassas şekilde planlanması. Bu, bir sonraki Periyodik çalışma programının dinamik hesaplamasına olanak tanır. Bu özellik, uyarlanabilir yenileme süreleri, özel yeniden deneme davranışı veya bir haber feed'i çalışanının, kullanıcı her sabah kayma olmadan uyanmadan önce çalışmasını sağlamak gibi gelişmiş özellikleri uygulamak için kullanılabilir. Şu anda çalışmakta olan bir çalışanın iptal edilmesini önlemek ve bir sonrakini planlamak için bu tekniklerle ExistingPeriodicWorkPolicy.UPDATE kullanılmalıdır.
  • WorkManager, ileti dizisi eşleştirme üretimiyle ilgili test yapıyor. ExecutorsMode.PRESERVE_EXECUTORS, Configuration içinde ayarlanan yürütücüleri korumak ve gerçek ana iş parçacığını kullanmak için kullanılabilir.
  • CoroutineWorker gibi eş yordam API'leri, work-runtime-ktx ek yapıdan work-runtime ana yapıya taşındı. work-runtime-ktx artık boş.

API Değişiklikleri

  • WorkInfo ürününün oluşturucusu herkese açık. Bu, test sırasında faydalı olabilir. (Ia00b6, b/209145335)
  • work-runtime-ktx artık boş. CoroutineWorker ve kotlin'e özgü diğer yardımcı programlar artık ana work-runtime yapısında kullanılabilir. (I71a9a)
  • Periyodik çalışma programlarının doğru bir şekilde ayarlanmasını sağlayan setNextScheduleTimeOverride yöntemi eklendi (I3b4da)
  • getEarliestRunTimeMillis, getNextScheduleTimeMillis olarak yeniden adlandırıldı. (I2bd7a)
  • Sonraki planlanan çalışma zamanı bilgisi WorkInfo konumuna eklenir. (I797e4)
  • İlk gecikme ve dönemsellik bilgileri WorkInfo öğesine eklenir. (I52f2f)
  • getWorkInfosByTagFlow, getWorkInfoByIdFlow, getWorkInfosForUniqueWorkFlow, getWorkInfosFlow (If122a) yöntemleriyle Akışlar aracılığıyla çalışanları gözlemleme yöntemi eklendi
  • Kısıtlamaların kurucularına ve özelliklerine eksik olan @RequiresApi(...) ek açıklamaları eklendi. Bunlar artık WorkManager ürününün ilk sürümlerinde bulunan ve Constraints.Builder ürünündeki set belirleyicilerde bulunan ilgili ek açıklamalarla uyumlu. (I6d7d2)
  • WorkManager, artık Content URI çalışanlarına JobScheduler içinde garantili alanlar vermek için ayrı bir sınır uyguluyor. Böylece, yüksek yük altında içerik güncellemelerinin eksik olmamasını sağlayabilirsiniz. Sınır, Configuration.Builder.setContentUriTriggerWorkersLimit aracılığıyla yapılandırılabilir. (Ic128f)
  • Sınırlamalar WorkInfo etiketine eklendi. (I162c0)

Sürüm 2.8

Sürüm 2.8.1

22 Mart 2023

androidx.work:work-*:2.8.1 yayınlandı. Sürüm 2.8.1 bu kayıtları içerir.

Hata Düzeltmeleri

  • Daha önce aynı anda iki yayını doğru şekilde işleyemeyen RescheduleReceiver sürümündeki ANR düzeltildi. (b/236906724)

Sürüm 2.8.0

8 Şubat 2023

androidx.work:work-*:2.8.0 yayınlandı. 2.8.0 sürümü bu kayıtları içerir.

2.7.0'dan sonraki önemli değişiklikler

Yeni Özellikler

API Değişiklikleri

  • Çalışmayı, orijinal sıraya alma süresini ve zincirleme sürecini koruyarak güncellemek için WorkManager.updateWork eklendi.(I9a248, b/219446409)
  • ExistingPeriodicWorkPolicy.UPDATE eklendi. Bu politika, periyodik çalışmaların ada göre güncellenmesine izin verir. Mevcut REPLACE ile benzerdir ancak daha az rahatsız edicidir: Çalışmakta olan bir çalışanı iptal etmez ve sıraya alma süresini korur. İlk gecikme ve süre, güncelleme zamanı yerine orijinal sıraya alma zamanından hesaplanır. Çok benzer şekilde adlandırılmış REPLACE ile UPDATE arasındaki karışıklığı azaltmak için REPLACE desteği sonlandırıldı. REPLACE öğesinin önceki anlamını kullanmaya devam etmek istiyorsanız REPLACE ile aynı olan yeni eklenen CANCEL_AND_REENQUEUE kullanılabilir. (I985ed, b/219446409)
  • setSchedulingExceptionHandler aracılığıyla Consumer<Throwable> sağlayan zamanlama istisnalarına müdahale etme özelliği eklendi.)
  • WorkManager'ı başlatmaya çalışırken sorun olup olmadığını belirlemek için setInitializationExceptionHandler üzerinden Consumer<Throwable> sağlama özelliği eklendi.
  • OneTimeWorkRequest ve PeriodicWorkRequest için satır içi yardımcılar androidx.work:work-runtime-ktx konumundan androidx.work:work-runtime konumuna taşındı (I0010f, b/209145335)
  • WorkQuery doğrudan oluşturmak için WorkQuery.fromIds, WorkQuery.fromStates, WorkQuery.fromUniqueWorkNames ve WorkQuery.fromTags yardımcı yöntemleri eklendi. (b/199919736) (If48f2, b/199919736)
  • getForegroundInfo, Worker koleksiyonuna eklendi. (Ic1ead)
  • Hem RxJava 2 hem de RxJava 3 için RxWorker artık ListenableFuture değerini döndüren setForegroundInfoAsync yerine kullanılabilecek Completable döndüren setForeground değerine sahip
  • Hem RxJava 2 hem de RxJava 3 için RxWorker, ListenableFuture değerini döndüren getForegroundInfoAsync yerine kullanılabilecek Single döndüren getForegroundInfo değerine sahiptir. (b/203851459)
  • Kısıtlamalar artık Kotlin kullanıcılarının işine yarayan Constraints.Builder kullanmak yerine doğrudan oluşturulabilir. (Idc390, b/137568653)
  • WorkManager başlatılıp başlatılmadığını kontrol etme özelliği eklendi. Ayrıca, kitaplık geliştiricilerinin WorkManager uygulamasının ilk kullanıma hazırlandığı yapılandırmayı alabilmeleri için yeni bir getConfiguration() API'si eklendi. (I6eff3, b/212300336)

Hata Düzeltmeleri

  • Çalışanların yük altındayken hemen çalışmasını engelleyen açgözlü planlayıcı ile ilgili bir sorun giderildi. (I9686b, b/248111307)
  • SDK 33 ve sonraki sürümlerde POST_NOTIFICATIONS izninin verilmesini gerektiren API'lere @RequiresPermission eklendi. (Ie542e, b/238790278)
  • suspendCancellableCoroutine kullanırken CoroutineScope içindeki iptalleri ListenableFuture öğesine yayın.

Sürüm 2.8.0-rc01

7 Aralık 2022

androidx.work:work-*:2.8.0-rc01 yayınlandı. 2.8.0-rc01 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Bu sürümde yeni özellik yok. Bu temel olarak bir sürüm güncellemesidir

Sürüm 2.8.0-beta02

9 Kasım 2022

androidx.work:work-*:2.8.0-beta02 yayınlandı. 2.8.0-beta02 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • WorkInfo içinde, daha önce yeni nesil bilgilerinin hesaba katılmadığı equals yöntemi düzeltildi. (4977cc)

Sürüm 2.8.0-beta01

5 Ekim 2022

androidx.work:work-*:2.8.0-beta01 yayınlandı. 2.8.0-beta01 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Çalışanların yük altındayken hemen çalışmasını engelleyen açgözlü planlayıcı ile ilgili bir sorun giderildi. (I9686b, b/248111307)

Sürüm 2.8.0-alpha04

7 Eylül 2022

androidx.work:work-*:2.8.0-alpha04 yayınlandı. 2.8.0-alpha04 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Bir çalışanın neslini döndüren WorkerInfo.getGeneration() ve WorkerParameters.getGeneration() eklendi. Bir çalışanın birden fazla nesli vardır (ExistingPeriodicWorkPolicy.UPDATE kullanılarak WorkManager.updateWork veya WorkManager.enqueueUniquePeriodicWork aracılığıyla güncellenmişse). Çalışan şu anda çalışıyorsa ve çalışan yürütülürken bir güncelleme olduysa, bu yöntemin o anda çalışan çalışanın yeni neslini döndürmesinin mümkün olduğunu unutmayın. (I665c5, b/219446409) (I128a9, b/219446409)
  • WorkManager başlatılırken sorun olup olmadığını belirlemek için kullanılabilecek bir İstisna İşleyicisi olan InitializationExceptionHandler eklendi. (I061de)

Sürüm 2.8.0-alpha03

10 Ağustos 2022

androidx.work:work-*:2.8.0-alpha03 yayınlandı. 2.8.0-alpha03 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Orijinal sıraya girme süresi ve zincir gibi bilgileri koruyarak, rahatsız edici olmayacak şekilde WorkRequests güncelleme olanağı eklendi. Daha fazla ayrıntı için WorkManager.updateWork ve ExistingPeriodicWorkPolicy.UPDATE sayfalarına bakın.

API Değişiklikleri

  • Çalışmayı, orijinal sıraya alma süresini ve zincirleme sürecini koruyarak güncellemek için WorkManager.updateWork eklendi.(I9a248, b/219446409)
  • ExistingPeriodicWorkPolicy.UPDATE eklendi. Bu politika, periyodik çalışmaların ada göre güncellenmesine olanak tanır. Mevcut REPLACE ile benzerdir ancak daha az rahatsız edicidir: Çalışmakta olan bir çalışanı iptal etmez ve sıraya alma süresini korur. İlk gecikme ve süre, güncelleme zamanı yerine orijinal sıraya alma zamanından hesaplanır. Çok benzer şekilde adlandırılmış REPLACE ile UPDATE arasındaki karışıklığı azaltmak için REPLACE desteği sonlandırıldı. REPLACE öğesinin önceki anlamını kullanmaya devam etmek istiyorsanız REPLACE ile aynı olan yeni eklenen CANCEL_AND_REENQUEUE kullanılabilir. (I985ed, b/219446409)
  • Bir SchedulingExceptionHandler tanımlayarak planlama istisnalarına müdahale etme özelliği ekleyin. (I033eb)
  • OneTimeWorkRequest ve PeriodicWorkRequest için satır içi yardımcılar androidx.work:work-runtime-ktx konumundan androidx.work:work-runtime konumuna taşındı (I0010f, b/209145335)

Hata Düzeltmeleri

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

Sürüm 2.8.0-alpha02

6 Nisan 2022

androidx.work:work-*:2.8.0-alpha02 yayınlandı. 2.8.0-alpha02 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Sınırlamalar artık Kotlin kullanıcılarının işine yarayan Oluşturucu aracını kullanmak yerine doğrudan oluşturulabilir. (Idc390, b/137568653)
  • WorkManager başlatılıp başlatılmadığını kontrol etme özelliği eklendi. Ayrıca, kitaplık geliştiricilerinin WorkManager uygulamasının ilk kullanıma hazırlandığı yapılandırmayı alabilmeleri için yeni bir getConfiguration() API'si eklendi. (I6eff3, b/212300336)

Sürüm 2.8.0-alpha01

12 Ocak 2022

androidx.work:work-*:2.8.0-alpha01 yayınlandı. 2.8.0-alpha01 sürümü bu kayıtları içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

  • suspendCancellableCoroutine kullanırken CoroutineScope içindeki iptalleri ListenableFuture öğesine yayın. (I77e63)

Sürüm 2.7

Sürüm 2.7.1

17 Kasım 2021

androidx.work:work-*:2.7.1 yayınlandı. 2.7.1 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • suspendCancellableCoroutine kullanılırken CoroutineScope içindeki iptaller ListenableFuture öğesine aktarılır. (I77e63)
  • Gecikmeli çalışma istekleri hızlandırılmış olarak işaretlendiğinde hemen bir istisna uygulanır. bef1762

Sürüm 2.7.0

13 Ekim 2021

androidx.work:work-*:2.7.0 yayınlandı. 2.7.0 sürümü bu kayıtları içerir.

2.6.0'dan sonraki ö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'sini kullanıma sunuyor.

  • WorkManager, setExpedited(...) kullanılırken Android 12'den itibaren JobScheduler'daki hızlandırılmış işlere yetki verir. Buna ek olarak, bir Ön Plan Hizmeti'ne 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ınlandı. 2.7.0-rc01 sürümü bu kayıtları içerir.

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

Sürüm 2.7.0-beta01

1 Eylül 2021

androidx.work:work-*:2.7.0-beta01 yayınlandı. 2.7.0-beta01 sürümü bu kayıtları içerir.

Yeni Özellikler

  • WorkManager'ı ilk kullanıma hazırlarken çok işlemli SQLite anlaşmazlığını azaltın.

API Değişiklikleri

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

Hata Düzeltmeleri

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

Sürüm 2.7.0-alpha05

21 Temmuz 2021

androidx.work:work-*:2.7.0-alpha05 yayınlandı. 2.7.0-alpha05 sürümü bu kayıtları içerir.

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

Sürüm 2.7.0-alpha04

2 Haziran 2021

androidx.work:work-*:2.7.0-alpha04 yayınlandı.

Bu sürüm aynı zamanda 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, bu işler artık hızlandırılmaz. Düzenli işler haline gelirler.

Sürüm 2.7.0-alpha03

21 Nisan 2021

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

Hata Düzeltmeleri

  • Android 12 hedeflenirken oluşan kilitlenmeyi düzeltmek için PendingIntent değişkenliğini açık hale getirin. (b/180884673)

Sürüm 2.7.0-alpha01

18 Şubat 2021

androidx.work:work-*:2.7.0-alpha01 yayınlandı. 2.7.0-alpha01 sürümü bu kayıtları içerir.

Yeni Özellikler

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

    Uygulamalar artık arka plandayken ön plan hizmeti başlatamaz. Bu nedenle uygulamalar, 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 WorkRequest'leri Hızlandırılmış olarak işaretleyebilir.

    Bu API, kullanımdan kaldırılmış setForegroundAsync(...) / setForeground(...) API'lerinin yerini almaktadır.

    WorkManager, setExpedited(...) kullanılırken Android 12'den itibaren JobScheduler bölgesinde hızlandırılmış işler için yetki verirken, ö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 desteği ekleyin.

Sürüm 2.6.0

Sürüm 2.6.0

1 Eylül 2021

androidx.work:work-*:2.6.0 yayınlandı. 2.6.0 sürümü bu kayıtları içerir.

2.5.0'dan sonraki önemli değişiklikler

  • WorkManager, WorkManager'ı ilk kullanıma hazırlamak için artık androidx.startup kullanıyor. Geçmişte WorkManager'ı ilk kullanıma hazırlamak için kullanılan ContentProvider 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.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" />
    
  • Çalışanlar için her türlü işlemde çalışabilen destek eklendi. (Iaf200)

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

Sürüm 2.6.0-rc01

4 Ağustos 2021

androidx.work:work-*:2.6.0-rc01 yayınlandı. 2.6.0-rc01 sürümü bu kayıtları içerir.

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

Sürüm 2.6.0-beta02

21 Temmuz 2021

androidx.work:work-*:2.6.0-beta02 yayınlandı. 2.6.0-beta02 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • RemoteWorkManager artık RemoteWorkManagerService ile olan bağlantıyı doğru şekilde kaldırıyor. Böylece RemoteWorkManagerService uygulaması düzgün şekilde temizlenmiş oluyor. aosp/1730694
  • RemoteListenableWorker, RemoteWorkerService ile olan bağlantısını artık doğru şekilde kaldırıyor. Bu sayede RemoteWorkerService, cihazı doğru şekilde temizleyebiliyor. aosp/1743817
  • ForceStopRunnable artık yalnızca birincil uygulama işleminde çalışır. Bu bir optimizasyon olup birden fazla işlem kullanan uygulamalar için kaynak çakışmasını önler. aosp/1749180, aosp/1761729

Sürüm 2.6.0-beta01

2 Haziran 2021

androidx.work:work-*:2.6.0-beta01 yayınlandı. 2.6.0-beta01 sürümü bu kayıtları içerir.

Bu sürüm, bazı küçük doküman iyileştirmeleri içerir. Sürüm 2.6.0-alpha02 ile büyük ölçüde aynıdır.

Sürüm 2.6.0-alpha02

21 Nisan 2021

androidx.work:work-*:2.6.0-alpha02 yayınlandı. 2.6.0-alpha02 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Çalışanlar için her işlemde çalışabilen 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'lerin bunları bağımlılık olarak kullanabilmesi için WorkManagerInitializer öğesini herkese açık hale getirin. (I5ab11)

Sürüm 2.6.0-alpha01

24 Mart 2021

androidx.work:work-*:2.6.0-alpha01 yayınlandı. 2.6.0-alpha01 sürümü bu kayıtları içerir.

Yeni Özellikler

  • WorkManager, WorkManager'ı ilk kullanıma hazırlamak için artık androidx.startup kullanıyor. Daha önce bu işlem androidx.work.impl.WorkManagerInitializer tarafından gerçekleştiriliyordu. (aosp/1608813)

    Geçmişte işlem yaşam döngüsünü başlatmak için kullanılan ContentProvider öğesini 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'si ekleyin. (Ie51e3)

Hata Düzeltmeleri

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

Sürüm 2.5.0

Sürüm 2.5.0

27 Ocak 2021

androidx.work:work-*:2.5.0 yayınlandı. Sürüm 2.5.0 bu kayıtları içerir.

2.4.0'dan bu yana yapılan önemli değişiklikler

  • Birden çok işlem kullanan uygulamalar için yeni bir :work:work-multiprocess yapısı. Bu da iş isteği planlamasını tek bir işlemde birleştirerek performans kazançlarını artırır.
    • work-multiprocess özelliğini kullanmak için şunlara bağımlılık tanımlayın: implementation "androidx.work:work-multiprocess:2.5.0"
    • Configuration.Builder.setDefaultProcessName(String) işlevini kullanarak birincil işlem atayın.
    • work-multiprocess kullanırken WorkRequest'lerinizi yönetmek için RemoteWorkManager'ı da kullanmak istersiniz. RemoteWorkManager, belirlenen işleme her zaman ulaşır. İşlem içi planlayıcı, belirtilen işlemde de çalışır.
  • Bazen ActivityManager, bir iş başlatmak için JobService örneğini örnekleyemez. Bu da bir platform hatası nedeniyle temel işin sessizce iptal edilmesine neden olur. WorkManager, artık işler uzlaştırılarak bir Application başlatılırken her bir WorkRequest için yedek işler olmasını sağlıyor. Bu yöntem, iş yürütme güvenilirliğini önemli ölçüde artırır. (b/172475041, aosp/1489577)
  • WorkManager, WorkRequest tamamlandıktan sonra izlenen WorkRequest arabellek süresini azaltarak veritabanı büyümesini sınırlandırır. Süre 7 gün önceydi. 1 güne + keepResultsForAtLeast süresine düşürüldü. (aosp/1419708)
  • TestListenableWorkerBuilder, testi kolaylaştırmak için artık ListenableWorker kapsamını genişleten yenidenlaştırılmış sınıfı desteklemektedir. (aosp/1443299, b/169787349)
  • WorkManager denetleyicisi artık Android Studio Arctic Fox ile kullanılabilir.

Sürüm 2.5.0-rc01

13 Ocak 2021

androidx.work:work-*:2.5.0-rc01 yayınlandı. 2.5.0-rc01 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

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

Sürüm 2.5.0-beta02

2 Aralık 2020

androidx.work:work-*:2.5.0-beta02 yayınlandı. 2.5.0-beta02 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • androidx.work:work-multiprocess özelliğinde, belirtilen işleme bağlanmaya çalışırken WorkManager'ın çağrıda bulunan ileti dizisini yanlışlıkla engellemesine neden olan bir hata düzeltildi. (aosp/1475538)
  • PeriodicWorkRequest öğelerinin doğru mutabık kılınmamasına neden olan hata düzeltildi. (b/172475041, aosp/1489577)
  • setForeground* API'leri kullanılırken ön plan hizmetinin durdurulması sırasında ortaya çıkan platform hatası için geçici bir çö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ınlandı. 2.5.0-beta01 sürümü bu kayıtları içerir.

Yeni Özellikler

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

Hata Düzeltmeleri

  • ListenableWorker yarıda kesildiğinde daha sonra yeniden planlanabilmesi için bunları 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ınlandı. 2.5.0-alpha03 sürümü bu kayıtları içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

  • Varsayılan uygulama işleminin adını belirlemek için ApplicationInfo öğesini 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şaretli değil. (aosp/1432091)
  • :work:work-multiprocess için ProGuard kurallarını düzeltin. (aosp/1432091)
  • Bir ön plan hizmetine bağlı uzun süreli işler için bildirim yaşam döngülerini iyileştirin. (b/168502234, aosp/1431331)

Sürüm 2.5.0-alpha02

16 Eylül 2020

androidx.work:work-*:2.5.0-alpha02 yayınlandı. 2.5.0-alpha02 sürümü bu kayıtları içerir.

Yeni Özellikler

  • WorkInfo öğelerini sorgulamak amacıyla id kullanabilmek için WorkQuery'ye bir API ekleyin. (aosp/1412372, b/157335295)
  • WorkManager, yeni bir yapıyla (androidx.work:work-multiprocess:*) birden fazla işlem kullanan uygulamaları daha iyi destekler. Bu yeni yapı, büyük uygulamaların karşılaştığı şu sorunların bazılarını çözmeye yardımcı olur:
    • WorkManager'ın genellikle her uygulama işleminde başlatılması gerekir. Bu iyi bir durum değildir çünkü SQLite anlaşmazlığı artar ve bu da başka sorunlara neden olur. WorkManager artık Configuration#setDefaultProcessName(processName) kullanarak birincil uygulama işlemi tanımlamak için kullanılabilecek yeni API'lere sahip. processName, packageName:processName (ör. com.example:remote) gibi görünen tam bir işlem adıdır.
    • Bir dizi yeni API: RemoteWorkManager ve RemoteWorkContinuation ile enqueue, cancel ve query iş istekleri. Birden çok işlemde SQLite anlaşmazlığını önlemek için LiveData varyantlar içermez. enqueue, cancel ve query'a yapılan tüm çağrılar, AIDL kullanılarak bir primary uygulama işlemine 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, eksik bağımlılığı olmayan tamamlanmış WorkRequest öğelerini artık daha agresif bir şekilde ayıklar. 7 gün olan arabellek süresi 1 gün olarak değiştirildi. (aosp/1419708)

Hata Düzeltmeleri

  • WorkManager, WorkManager başlatıldığında WorkRequest ve JobScheduler işlemlerinin senkronize olmasını sağlamak için artık işleri proaktif olarak mutabık kılar. (aosp/1412794, b/166292069)

Sürüm 2.5.0-alpha01

19 Ağustos 2020

androidx.work:work-*:2.5.0-alpha01 yayınlandı. 2.5.0-alpha01 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Gelecekte WorkManager ile daha iyi araçlar sunmamıza olanak tanıyan dahili API'lerde yapılan değişiklikler. Ek güncellemeler için bizi takip etmeye devam edin.

Hata Düzeltmeleri

  • Bazı cihazlarda ağ durumunu izlerken SecurityException öğelerini işleyin. (aosp/1396969)

Harici Katkı

  • Zac Sweers (github/43) tarafından geliştirilen ArrayCreatingInputMerger ile ilgili dokümanları düzeltin.

Sürüm 2.4.0

Sürüm 2.4.0

22 Temmuz 2020

androidx.work:work-*:2.4.0 yayınlandı. 2.4.0 sürümü bu kayıtları içerir.

2.3.0'dan bu yana yapılan önemli değişiklikler

  • WorkManager'nin işlem içi planlayıcısı artık daha yetenekli. Daha önce, süreçteki Scheduler yalnızca gecikmeli olmayan ve kısıtlamalarına uyan çalışmaları yürütmeyi göz önünde bulunduruyordu. Artık işlem içi planlayıcı, PeriodicWorkRequests de dahil olmak üzere gelecekte yürütülebilecek WorkRequest işlemlerini izliyor. İşlemdeki Scheduler de planlama sınırlarını dikkate almaz (ancak yine de WorkManager tarafından kullanılan Executor boyutuyla sınırlıdır). Diğer bir deyişle, uygulama ön plandayken uygulama artık çok daha fazla WorkRequest yürütebilir. Gecikmeli çalışmaların ön planda yürütülmesini yönetmek için WorkManager, yeni bir yapılandırılabilir RunnableScheduler özelliğini de kullanıma sundu. (aosp/1185778)
  • WorkManager artık RxJava 3'ü desteklemektedir. RxJava 3'ü kullanmak için şu bağımlılığı eklemeniz gerekir: implementation "androidx.work:work-rxjava3:2.4.0". (aosp/1277904)
  • WorkQuery kullanılarak WorkInfo için sorgulama özelliği eklendi. Geliştiriciler birden fazla özelliğin bir kombinasyonuna göre WorkInfo sorgulamak istediklerinde bu yöntem yararlıdır. Daha fazla bilgi için WorkQuery.Builder.fromStates(...), WorkQuery.Builder. fromTags(...) veya WorkQuery.Builder.fromUniqueWorkNames(...) sayfalarına bakın. (aosp/1253230, b/143847546)
  • Aşağıdakileri kullanarak WorkManager adlı satıcıdan teşhis bilgisi isteme olanağı ekleyin:

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

    Bu kaynak, aşağıdakileri de içeren birçok yararlı bilgi sağlar:

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

  • Gelecekte yürütülmesi gereken WorkRequest'leri izlemek için özel RunnableScheduler ekleme imkanı sağlar. Bu, işlemdeki Planlayıcı tarafından kullanılır. (aosp/1203944)

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

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

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

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

    • setForegroundAsync() API'leri kullanırken doğru foregroundServiceType kullanılmalıdır. (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 hata analizi kuralı eklendi. (aosp/1291262)
  • setForegroundAsync() için yapılan ve ListenableWorker tamamlanmadan önce yapılan aramalar, döndürülen ListenableFuture tarihinde IllegalStateException ile bildirilir. (aosp/1262743)

  • Worker ön planı kesintiye uğradığında ForegroundService öğesinin durdurulmamasına neden olan hata düzeltildi. (b/155579898, aosp/1302153)

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

Sürüm 2.4.0-rc01

24 Haziran 2020

androidx.work:work-*:2.4.0-rc01 yayınlandı. 2.4.0-rc01 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

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

Sürüm 2.4.0-beta01

20 Mayıs 2020

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

Hata Düzeltmeleri

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

Sürüm 2.4.0-alpha03

29 Nisan 2020

androidx.work:work-*:2.4.0-alpha03 yayınlandı. 2.4.0-alpha03 sürümü bu kayıtları içerir.

Yeni Özellikler

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

API Değişiklikleri

  • ListenableWorker tamamlandıktan sonra setProgressAsync() çağrılırsa artık ListenableFuture üzerinden Exception sinyali verilecek. (aosp/1285494)
  • WorkQuery.Builder, 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ınlandı. 2.4.0-alpha02 sürümü bu kayıtları içerir.

Yeni Özellikler

  • WorkRequest hem Constraints.setRequiresCharging(...) hem de Constraints.setRequiresDeviceIdle(...) gerektirdiğinde uyarı veren yeni bir Lint kuralı eklendi. Bazı cihazlar aynı anda hiçbir zaman şarj olmaz ve boşta kalmaz. Dolayısıyla bu tür istekler beklenenden daha az çalışır. (aosp/1253840)

API Değişiklikleri

  • WorkQuery kullanılarak WorkInfo için sorgulama özelliği eklendi. Geliştiriciler birden fazla özelliğin bir kombinasyonuna göre WorkInfo sorgulamak istediklerinde bu yöntem yararlıdır. Daha fazla bilgi için WorkQuery.Builder withStates(...), WorkQuery.Builder withTags(...) veya WorkQuery.Builder withUniqueWorkNames(...) sayfalarına bakın. (aosp/1253230, b/143847546)

  • setForegroundAsync() için yapılan ve ListenableWorker tamamlanmadan önce yapılan aramalar, döndürülen ListenableFuture tarihinde IllegalStateException ile bildirilir. (aosp/1262743)

Hata Düzeltmeleri

  • PeriodicWorkRequest sn. için geçersiz aralık sürelerini kontrol eden hata analizi 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ınlandı. 2.4.0-alpha01 sürümü bu kayıtları içerir.

Yeni Özellikler

  • WorkManager'nin işlem içi planlayıcısı artık daha yetenekli. Daha önce, süreçteki Planlayıcı yalnızca gecikmeyen ve kısıtlamaları karşılanan işleri yürütmeyi değerlendiriyordu. Artık işlem içi planlayıcı, PeriodicWorkRequest dahil olmak üzere gelecekte yürütülebilecek WorkRequest işlemlerini izliyor. İşlemdeki 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). Yani, uygulama ön plandayken artık çok daha fazla WorkRequest yürütebilir. (aosp/1185778)

  • adb shell am broadcast -a "androidx.work.diagnostics.REQUEST_DIAGNOSTICS" -p "<your_app_package_name>" kullanarak WorkManager'dan teşhis bilgisi isteme özelliği eklendi. Bu kaynak, aşağıdakileri de içeren birçok yararlı bilgi sağlar:

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

    • setForegroundAsync() API'leri kullanırken doğru foregroundServiceType kullanılmalıdır. (b/147873061, aosp/1215915)
    • Doğrudan JobService API'lerini kullanırken WorkManager tarafından kullanılması gereken JobScheduler kimliklerini belirtme. (aosp/1223567)

API Değişiklikleri

  • APPEND ile benzer olan ExistingWorkPolicy.APPEND_OR_REPLACE ekleyin ancak önkoşulları iptal eden veya yerine getiremeyen bir zincirin yerini değiştirin. (b/134613984, aosp/1199640)

  • Gelecekte yürütülmesi gereken WorkRequest'leri izlemek için özel RunnableScheduler ekleme imkanı sağlar. Bu, işlemdeki Planlayıcı tarafından kullanılır. (aosp/1203944)

Hata Düzeltmeleri

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

Sürüm 2.3.4

Sürüm 2.3.4

18 Mart 2020

androidx.work:work-*:2.3.4 yayınlandı. 2.3.4 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • 10 dakikalık yürütme süresi aşıldığında, uzun süre çalışan Worker öğelerinin birden fazla örneğinin çalışmasına neden olan bir hata düzeltildi. (aosp/1247484, b/150553353)
  • WorkManager'ın IssueRegistry hata analizi için düzeltme. Slack'ten @ZacSweers'a katkıları için teşekkür ederiz. (aosp/1217923)

Sürüm 2.3.3

Sürüm 2.3.3

4 Mart 2020

androidx.work:work-*:2.3.3 yayınlandı. 2.3.3 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

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

Sürüm 2.3.2

Sürüm 2.3.2

19 Şubat 2020

androidx.work:work-*:2.3.2 serbest bırakıldı. 2.3.2 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Nadir durumlarda WorkManager'ın JobScheduler'daki 100 iş sınırını aşmasına neden olan sorun giderilir. (aosp/1226859, b/149092520)
  • ConstraintControllers'da yarış durumu için düzeltme uygulandı. (aosp/1220100)
  • Uzun süre çalışan Çalışanlar için yönetim ön planı Hizmet yaşam döngüsü iyileştirildi. (aosp/1226295)
  • Uzun süre çalışan Çalışan iptali sonrasında, Bildirimlerin iptali 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ınlandı. Sürüm 2.3.1 bu kayıtları içerir.

Hata düzeltmeleri

  • Ön plan Service etkinken çalışan uzun süreli Worker'ler için Notification 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ünü kullanıyor. (aosp/1217729)
  • ForegroundInfo içinde foregroundServiceType kullanılırken 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 olmadan yayınlandı. Sürüm 2.3.0 bu kayıtları içerir.

2.2.0'dan sonraki önemli değişiklikler

  • Uzun süreli çalışmalar veya önemli işler için ListenableWorker#setForegroundAsync() üzerinden destek.
  • ListenableWorker#setProgressAsync() Üzerinden Çalışan İlerleme Durumu desteği.
  • WorkManager, kitaplığın bir parçası olarak artık ek lint kuralları paketleyerek hataların erken yakalanmasını sağlar.

Sürüm 2.3.0-rc01

8 Ocak 2020

androidx.work:work-*:2.3.0-rc01 yayınlandı. 2.3.0-rc01 sürümü bu kayıtları içerir.

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

Hata düzeltmeleri

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

Sürüm 2.3.0-beta02

18 Aralık 2019

androidx.work:work-*:2.3.0-beta02 yayınlandı. 2.3.0-beta02 sürümü bu kayıtları 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 öğesinden kaldırılmasını sağlayan bir hata analizi kuralı eklendi. (aosp/1167007)
  • enqueueUniquePeriodicWork() yerine PeriodicWorkRequest için enqueue() kullanıldığında hata analizi uyarısı eklendi. (aosp/1166032)

API değişiklikleri

  • ForegroundInfo artık ListenableWorker.setForegroundAsync() kullanılırken kullanılacak notificationId öğesini belirtmenizi zorunlu tutuyor. Bu, zarar verici bir değişiklik. Böylece aynı anda birden fazla uzun süreli Worker çalıştırabilirsiniz. WorkManager ayrıca sağlanan Notification öğelerinin kullanım ömürlerini daha iyi yönetir. (b/145473554, aosp/1181208, asop/1181216, asop/1183577)

Hata düzeltmeleri

  • AlarmManager uygulamasında, alarmların doğru şekilde temizlenmesine yol açan bir hata düzeltildi. (aosp/1156444)
  • Boş WorkRequest listesinin yanlış WorkContinuation zincirinin derlenmesine neden olan hata düzeltildi. (b/142835274, aosp/1157051)

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

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

Sürüm 2.3.0-beta01

20 Kasım 2019

androidx.work:work-*:2.3.0-beta01 yayınlandı. 2.3.0-beta01 sürümü bu kayıtları içerir.

Yeni özellikler

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

Sürüm 2.3.0-alpha03

23 Ekim 2019

androidx.work:work-*:2.3.0-alpha03 yayınlandı. Sürüm 2.3.0-alpha03 bu kayıtları içerir.

Yeni özellikler

  • AndroidManifest.xml içinde başka bir bileşen kaydetmek zorunda kalmadan WorkRequest öğelerini iptal etmeyi kolaylaştıran WorkManager.createCancelPendingIntent() API'si eklendi. Bu API, özellikle Notification kaynaklı WorkRequest işlemlerinin iptal edilmesini kolaylaştırır. Bu API'nin, 2.3.0 sürümünde yeni ön plan API'leriyle eşlenmesini bekliyoruz.
  • WorkManager artık androidx.room:*:2.2.0 kararlı sürümünü kullanıyor.

API değişiklikleri

  • Temel platform API'leriyle daha tutarlı olması için ForegroundInfo.getNotificationType() öğesinin adı ForegroundInfo.getForegroundServiceType() olarak değiştirildi. (b/142729893, aosp/1143316)

Hata düzeltmeleri

  • Bir işlem dışında setTransactionSuccessful() için gereksiz bir çağrının neden olduğu bir hata düzeltildi. Bu durum, nadir taşıma işlemlerinde yaşanır. (b/142580433, aosp/1141737)

Sürüm 2.3.0-alpha02

9 Ekim 2019

androidx.work:work-*:2.3.0-alpha02 yayınlandı. Sürüm 2.3.0-alpha02 bu kayıtları içerir.

Yeni özellikler

  • WorkManager, işletim sistemi tarafından sürdürülmesi gereken uzun süreli işleri veya önemli işleri artık 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 uygulamasındaki containsKey API, hasKeyWithValueOfType olarak yeniden adlandırıldı. ktx kitaplığındaki ilgili uzantı yöntemi de yeniden adlandırıldı. (b/141916545)

Hata düzeltmeleri

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

Sürüm 2.3.0-alpha01

22 Ağustos 2019

androidx.work:work-*:2.3.September 5, 20190-alpha01 yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

Yeni özellikler

  • ListenableWorker kullanıcıları artık ilerleme durumunu setProgressAsync() API'si ile ayarlayabilir. Ayrıca, CoroutineWorker içine karşılık gelen suspend-ing setProgress API'si ve RxWorker içinde Single<Void> değeri döndüren bir setProgress eklendi. Bu yeni API'lerle çalışanlar, ilerleme bilgilerini WorkInfo aracılığıyla aktarabilir ve buna karşılık gelen bir getProgress API'si vardır. (b/79481554)
  • Data, Worker giriş verilerinin beklenen türde anahtarlara sahip olduğunu doğrulamak için kullanılabilecek bir containsKey() API'sına sahip. (b/117136838)
  • Data artık Data.toByteArray() ve Data.fromByteArray() kullanılarak serileştirilebilir. Data ile sürüm oluşturma garantisi verilmez, bu nedenle onu devam ettirmemeniz veya uygulamalar arasında IPC için kullanmamanız gerekir. Yalnızca aynı uygulamanın birden fazla işlemi arasında güvenle kullanılabilirler.
  • Configuration.setInputMergerFactory aracılığıyla InputMergerFactory belirtme olanağı eklendi. (b/133273159)

API değişiklikleri

  • WorkerFactory, daha önce çağrılan ListenableWorker örneğini döndürürse WorkManager, IllegalStateException öğesinin bir örneğini atar. (b/139554406)
  • ListenableWorker içinde ListenableFuture iptali ve onStopped() geri aramasıyla ilgili dokümanlar güncellenir. (b/138413671)

Hata düzeltmeleri

  • İşlemdeki Planlayıcı artık idle kısıtlamasıyla WorkRequest öğelerini yok sayıyor. Bu istekler artık yalnızca cihazın idle olduğu durumlarda JobScheduler tarafından teslim alınıyor. (aosp/1089779)
  • TestScheduler artık testlerde dahili görev yürütücüsü için belirtilen Executor öğesini 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ınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

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

2.2.0 ve 2.1.0'da Yapılan Önemli Değişiklikler

androidx.work:work-gcm:2.2.0, Google Play Hizmetleri <= 22 API düzeyleri için kullanılabilir olduğunda 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 planda işlemeye yardımcı olan isteğe bağlı bir bağımlılıktır. Uygulamanız Google Play Hizmetleri'ni kullanıyorsa GCMNetworkManager desteğini otomatik olarak almak için bu bağımlılığı gradle dosyanıza ekleyin. Play Hizmetleri kullanılamıyorsa WorkManager eski cihazlarda AlarmManager'ı kullanmaya devam eder.

Sürüm 2.2.0-rc01

30 Temmuz 2019

androidx.work:work-*:2.2.0-rc01 yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

Hata düzeltmeleri

  • AlarmManager uygulamasında, Hizmet'in zamanından önce kapanmasına ve nadir durumlarda RejectedExecutionException hatasına neden olan bir hata düzeltildi. (aosp/1092374) (b/138238197).
  • Bazı cihazlarda JobScheduler API'leri kullanılırken NullPointerException için geçici çözüm eklendi. (aosp/1091020) (b/138364061), (b/138441699)

Sürüm 2.2.0-beta02

19 Temmuz 2019

androidx.work:work-*:2.2.0-beta02 yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

Hata düzeltmeleri

  • 2.2.0-beta01 ayında kullanıma sunulan istenmeyen jakoko bağımlılığı kaldırıldı.

Sürüm 2.2.0-beta01

17 Temmuz 2019

androidx.work:work-*:2.2.0-beta01 yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

Yeni özellikler

  • androidx.work:work-gcm:2.2.0-beta01, Google Play Hizmetleri <= 22 API düzeyleri için kullanılabilir olduğunda 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şlemesine yardımcı olan isteğe bağlı bir bağımlılıktır. Uygulamanız Google Play Hizmetleri'ni kullanıyorsa GCMNetworkManager desteğini otomatik olarak almak için bu bağımlılığı gradle dosyanıza ekleyin. Play Hizmetleri kullanılamıyorsa WorkManager eski cihazlarda AlarmManager'ı kullanmaya devam eder.

Hata düzeltmeleri

  • Nvidia Shield K1 tabletlerinde ağ durumu izlenirken IllegalArgumentException için düzeltme uygulandı. (aosp/1010188)

Sürüm 2.1.0

Sürüm 2.1.0

11 Temmuz 2019

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

2.0.1'den bu yana yapılan önemli değişiklikler

  • work-runtime-ktx için artık Java 8 gerekiyor. Herhangi bir sorunla karşılaşırsanız build.gradle öğenize aşağıdakileri ekleyebilirsiniz: kotlinOptions { jvmTarget = "1.8" }
  • WorkManager için isteğe bağlı başlatma özelliği eklendi. Bu özellik, WorkManager'ı yalnızca referans verildiğinde oluşturur. b/127497100 Projenizi isteğe bağlı başlatma için ayarlamak üzere:
    1. Otomatik başlatıcıyı devre dışı bırakın.
    2. Özel Application nesnenize Configuration.Provider uygulayın.
    3. Tüm WorkManager.getInstance() başvurularını WorkManager.getInstance(Context) olarak değiştirin. Bu değişiklik kapsamında WorkManager.getInstance() özelliğini kullanımdan kaldırdık. İsteğe bağlı başlatma yapmasanız bile yeni WorkManager.getInstance(Context) değişim cihazını çağırmak her zaman daha güvenlidir.
  • PeriodicWorkRequest artık ilk gecikmeleri destekliyor. Başlangıç gecikmesi ayarlamak için PeriodicWorkRequest.Builder üzerinde setInitialDelay yöntemini kullanabilirsiniz. b/111404867
  • DelegatingWorkerFactory kullanarak kayıtlı bir veya daha fazla WorkerFactory öğesine yetki verme olanağı eklendi. b/131435993
  • WorkManager tarafından kullanılan Executor alanını, tüm dahili muhasebe işlemleri için Configuration.Builder.setTaskExecutor üzerinden özelleştirme olanağı eklendi.
  • work-testing yapısında TestWorkerBuilder ve TestListenableWorkerBuilder kullanarak test edilebilir Worker ve ListenableWorker sınıfları oluşturma olanağı eklendi.
    • work-testing ürününün artık Kotlin'i bağımlılık olarak aldığını ve varsayılan olarak birkaç Kotlin uzantısı içerdiğini unutmayın.
  • Koşu denemesi sayısı WorkInfo değerine eklendi. b/127290461
  • Data türleri artık baytları ve bayt dizilerini depolayabilir ve alabilir. Bu, Data nesnelerinin maksimum boyutunu DEĞİŞTİRMEZ.
  • WorkManager artık, veritabanıyla ilgili bazı sorunları çözecek Room 2.1.0 hizmetini kullanıyor.

Sürüm 2.1.0-rc01

27 Haziran 2019

androidx.work:work-*:2.1.0-rc01 yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

Hata düzeltmeleri

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

Sürüm 2.1.0-beta02

20 Haziran 2019

androidx.work:work-*:2.1.0-beta02 yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

Hata düzeltmeleri

  • TestListenableWorkerBuilder, ListenableWorker örnekleri oluştururken artık doğru WorkerFactory kullanıyor. b/135275844
  • İşlemin ölümü nedeniyle WorkRequest işlemleri için yürütme pencerelerinde 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ınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

Hata düzeltmeleri

  • WorkManager artık, veritabanıyla ilgili bazı sorunları çözecek Room 2.1.0 hizmetini kullanıyor.
  • Ana iş parçacığındaki bazı başlangıç diski G/Ç'si kaldırıldı.
  • Kısıtlama izlemedeki olası bir kilitlenme düzeltildi. b/134361006
  • WorkManager ile ilişkilendirilen geçersiz işler önleme amaçlı olarak iptal edildi. b/134058261
  • JobScheduler API'lerine hatalı çalışan cihazlar için bazı savunma çağrıları eklendi.

Sürüm 2.1.0-alpha03

5 Haziran 2019

androidx.work:*:2.1.0-alpha03 yayınlandı.

Hata düzeltmeleri

  • PeriodicWorkRequest ile ilgili dokümanlar iyileştirildi.
  • WorkManagerTestInitHelper artık testler için doğru arka plan yürütücüyü kullanıyor.
  • Bazı cihazlarda büyük işlemler gerçekleştirirken SQLite ile ilgili sorunlara yönelik düzeltmeler. (b/130182503)
  • WorkManager'ın bağımlılıkları artık daha ayrıntılı. (b/133169148).
  • WorkManager'ı kullanarak iş planlarken JobScheduler uygulanmasıyla ilgili, OEM'ye özgü geçici hatalar.
  • AlarmManager tabanlı planlayıcıda, daha önce nadir kilitlenmelere neden olan hizmet kullanım ömrüne yönelik iyileştirmeler. (b/133313734)

Sürüm 2.1.0-alpha02

16 Mayıs 2019

WorkManager 2.1.0-alpha02 yayınlandı. Bu sürüm birkaç yeni API içeriyor.

API Değişiklikleri

  • PeriodicWorkRequest artık ilk gecikmeleri destekliyor. Başlangıç gecikmesi ayarlamak için PeriodicWorkRequest.Builder üzerinde setInitialDelay yöntemini kullanabilirsiniz. b/111404867

  • DelegatingWorkerFactory kullanarak kayıtlı bir veya daha fazla WorkerFactory öğesine yetki verme olanağı eklendi. b/131435993

  • WorkManager tarafından kullanılan Executor alanını, tüm dahili muhasebe işlemleri için Configuration.Builder.setTaskExecutor üzerinden özelleştirme olanağı eklendi.

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

Sürüm 2.1.0-alpha01

24 Nisan 2019

WorkManager 2.1.0-alpha01 yayınlandı. Bu sürüm birkaç yeni API içeriyor. Bu sürümden itibaren 1.x sürümüne geri taşınmayacak yeni özellikler olacağını unutmayın. 2.x sürümüne geçmenizi öneririz.

API Değişiklikleri

  • WorkManager için isteğe bağlı başlatma özelliği eklendi. Bu özellik, WorkManager'ı yalnızca referans verildiğinde oluşturur. b/127497100 Projenizi isteğe bağlı başlatma için ayarlamak üzere:
    1. Otomatik başlatıcıyı devre dışı bırakın.
    2. Özel Application nesnenize Configuration.Provider uygulayın.
    3. Tüm WorkManager.getInstance() başvurularını WorkManager.getInstance(Context) olarak değiştirin. Bu değişiklik kapsamında WorkManager.getInstance() özelliğini kullanımdan kaldırdık. İsteğe bağlı başlatma yapmasanız bile yeni WorkManager.getInstance(Context) değişim cihazını çağırmak her zaman daha güvenlidir.
  • work-testing yapısında TestWorkerBuilder ve TestListenableWorkerBuilder kullanarak test edilebilir Worker ve ListenableWorker sınıfları oluşturma olanağı eklendi.
    • work-testing ürününün artık Kotlin'i bağımlılık olarak aldığını ancak aynı zamanda varsayılan olarak birkaç Kotlin uzantısı içerdiğini unutmayın.
  • Koşu denemesi sayısı WorkInfo değerine eklendi. b/127290461
  • Data türleri artık baytları ve bayt dizilerini depolayabilir ve alabilir. Bu, Data nesnelerinin maksimum boyutunu DEĞİŞTİRMEZ.
  • CoroutineWorker.coroutineContext desteği sonlandırıldı. Bu alan, yanlış bir şekilde CoroutineDispatcher olarak yazılmıştır. Askıya alma işlevinin gövdesinde istediğiniz coroutineContext'e kendiniz gittiğiniz için artık buna ihtiyacınız yoktur.
  • RxWorker.createWork() ve RxWorker.getBackgroundScheduler() artık @NonNull döndürme türleriyle ek açıklamaya sahip.

Sürüm 2.0.1

Sürüm 2.0.1

9 Nisan 2019

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

Sürüm 2.0.1-rc01

3 Nisan 2019

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

Hata Düzeltmeleri

  • Robolectric testleri artık WorkManager ile düzgün çalışıyor. b/122553577
  • JobScheduler öncesi API'lerde temizlenmeyen kısıtlamalar takibiyle ilgili uç durum kilitlenmesi düzeltildi. b/129226383
  • Uzun iş zincirleriyle ilgili bir StackOverflowError düzeltildi. b/129091233
  • PeriodicWorkRequest dokümanları, esnek sürenin API 23'te desteklenmediğini belirtecek şekilde güncellendi.
  • Kotlin dokümanlarındaki bazı bozuk bağlantılar düzeltildi.

Sürüm 2.0.0

Sürüm 2.0.0

20 Mart 2019

WorkManager 2.0.0 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 ve 1.x sürümlerini hedefler. Kritik hata düzeltmeleri sınırlı bir süre için alınır.

Sürüm 2.0.0-rc01

7 Mart 2019

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

AndroidX Öncesi Bağımlılıklar

Kotlin uzantılarını kullanma hakkında bilgi edinmek için KTX belgelerini inceleyin.
Referans belgeler: Java

Modern

dependencies {
    def work_version = "1.0.1"

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

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

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

Kotlin

dependencies {
    val work_version = "1.0.1"

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

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

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

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

Sürüm 1.0.1

Sürüm 1.0.1

9 Nisan 2019

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

1.x dalında bundan sonra çok az güncelleme olacağından, kullanıcıların WorkManager 2.x’e güncelleme yapmalarını önemle tavsiye ettiğimizi lütfen unutmayın. 1.x kitaplığı için yeni API'ler de yayınlanmayacaktır.

Sürüm 1.0.1-rc01

2 Nisan 2019

WorkManager 1.0.1-rc01 yayınlandı. Bu sürüm bazı hata düzeltmeleri içeriyor.

Hata Düzeltmeleri

  • Robolectric testleri artık WorkManager ile düzgün çalışıyor. b/122553577
  • JobScheduler öncesi API'lerde temizlenmeyen kısıtlamalar takibiyle ilgili uç durum kilitlenmesi düzeltildi. b/129226383
  • Uzun iş zincirleriyle ilgili bir StackOverflowError düzeltildi. b/129091233

Sürüm 1.0.0

Sürüm 1.0.0

5 Mart 2019

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

Sürüm 1.0.0-rc02

21 Şubat 2019

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

Hata Düzeltmeleri

  • Worker öğeleri artık bir uygulama kilitlenmesinden sonra doğru şekilde planlandı. b/124546316

  • İşaretlenmemiş Exception işareti veren Worker öğeleri artık doğru bir şekilde FAILED olarak işaretleniyor ve artık uygulama işlemini çökertmiyor.

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üm bir hata düzeltmesi içerir.

Hata Düzeltmeleri

  • AlarmManager tabanlı uygulama, artık PeriodicWorkRequests için flex zaman aralığını doğru şekilde uymaktadır. b/124274584

Sürüm 1.0.0-beta05

6 Şubat 2019

Bu sürüm bazı hata düzeltmeleri içermektedir.

Hata Düzeltmeleri

  • API 23'te JobScheduler.getPendingJob(...) özelliğinin 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üm bazı hata düzeltmeleri içermektedir.

Hata Düzeltmeleri

  • AlarmManager tabanlı uygulama için PeriodicWork'ün zamanlaması iyileştirildi.
  • AlarmManager tabanlı uygulamayı kullanırken WorkManager'ın kısıtlamaları doğru şekilde izleyememesi durumu düzeltildi. b/123379508
  • AlarmManager tabanlı uygulamayı kullanırken WorkManager'ın işlem ölümü üzerinde çalışmayı yeniden denememe sorunu giderildi. b/123329850
  • AlarmManager tabanlı uygulamayı kullanırken WorkManager'ın Uyandırma Kilitlerini sızdırmasına neden olan bir durum düzeltildi.

Sürüm 1.0.0-beta03

25 Ocak 2019

Bu sürüm bazı hata düzeltmeleri içermektedir.

Hata Düzeltmeleri

  • İşin bazı durumlarda doğru şekilde yürütülmemesine neden olan bir regresyon 1.0.0-beta02 ortaya çıktı. b/123211993
  • Çalışmanın geri yükleme zamanına düzgün şekilde uymadığı bir durum düzeltildi. b/122881597
  • Android 5.1 (API veya önceki sürümleri) veya önceki sürümleri çalıştıran cihazlarda ConcurrentModificationException sorunu düzeltildi. Bu, 1.0.0-beta02 ürünündeki düzeltmenin devamıdır. b/121345393
  • Manifest'te bu ek açıklamanın eksik olduğu bazı bileşenler için exported=false eklendi.
  • Paket düzeyindeki belgelere WorkManager'ın işletim sistemiyle nasıl etkileşimde bulunduğuna dair bilgiler eklendi.

Sürüm 1.0.0-beta02

15 Ocak 2019

Bu sürüm bazı hata düzeltmeleri içermektedir.

Hata Düzeltmeleri

  • Android 6.0 (API düzeyi 23) çalıştıran cihazlarda periyodik çalışmaların aralık başına birden fazla kez çalıştırılmasına neden olan uç bir durum düzeltildi. b/121998363
  • Android 5.1 (API düzeyi 22) veya önceki 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ığında oluşan hatalı çalışma yürütme düzeltildi. b/122578012
  • Bazı uç durumlarda daha hızlı olacak şekilde optimize edilmiş iş tamamlama süreci. b/122358129
  • WorkManager'ın kullandığı birden fazla LiveData örneği arasındaki olası yarış koşullarını ele alan bir değişiklik eklendi.
  • 1.1.1-rc01 yerine Room bağımlılığı 1.1.1 kullanılacak şekilde taşındı; bu sürümler aynı. 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 WorkManager'ın, kritik bir sorun olmadığı sürece bir sonraki sürüme kadar API'nin kararlı durumda kalması beklenmektedir. Bu sürüm bazı hata düzeltmeleri içermektedir.

Hata Düzeltmeleri

  • Başarıyla tamamlanmış üst işin daha önce iptal edilen alt öğeleri artık çalışmayacaktır. b/120811767
  • Uygun şekilde başlatılan günlük sınıfları (genellikle testler sırasında gösterilir).

Sürüm 1.0.0-alfa13

12 Aralık 2018

Bu sürüm, bazı Kotlin kullanıcılarına faydalı olacak küçük bir API değişikliği içeriyor.

API Değişiklikleri

  • androidx.work.Result, ListenableWorker alt sınıfı olacak şekilde taşındı. Bu, Kotlin'in üst düzey Result sınıfıyla çakışmaların yeniden düzenlenmesini önler. Bu, olumsuz bir API değişikliğidir. b/120564418

Kesin API Değişiklikleri

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

Sürüm 1.0.0-alpha12

5 Aralık 2018

Bu sürümde, zarar veren API değişiklikleri yer alıyor. Lütfen aşağıdaki Kırıcı API Değişiklikleri bölümüne bakın. Bu sürüm muhtemelen ilk beta programımız olarak yayınlanacaktır. alpha12, kapsamlı doküman güncellemeleri de içerir.

API Değişiklikleri

  • work-rxjava2 adlı yeni yapı, RxWorker özelliğini tanıtıyor. Bu, Single<Payload> bekleyen bir ListenableWorker.
  • Firebase JobDispatcher desteği yakında sonlandırılacağı için kaldırıldı. Bu nedenle, beta sürümüne girerken work-firebase yapısı artık güncellenmeyecek. Gelecekte bir alternatif eklemeye çalışacağız.
  • Payload, Result olarak birleştirildi. Result, artık Result.success() (veya Result.success(Data)), Result.failure() (veya Result.failure(Data)) ve Result.retry() aracılığıyla elde edebileceğiniz üç somut uygulamaya sahip bir "bağımsız sınıf" haline geldi. ListenableFuture öğeleriniz artık Payload yerine Result sonucunu veriyor. Worker, Data çıkışı için getter ve setter yöntemlerine sahip değil. Bu, zarar verici bir değişiklik.
  • Yavaş tetiklenen içerik URI'lerini daha iyi desteklemek için Constraints.Builder.setTriggerContentMaxDelay(long, TimeUnit), Constraints.Builder.setTriggerContentUpdateDelay(long, TimeUnit) ve varyantlar eklendi. b/119919774
  • WorkRequest.Builder.setBackoffCriteria(BackoffPolicy, Duration) varyant eklendi. Bu yöntem için API 26 gerekir.
  • Operation.await() ve ListenableFuture.await() Kotlin uzantısı yöntemleri eklendi.
  • Operation.getException(), Operation.getThrowable() olarak yeniden adlandırıldı. Bu, zarar verici bir değişiklik.
  • Bu öğeye başvuruda bulunan ContentUriTriggers sınıfı ve yöntemleri artık herkese açık olarak kullanılamaz. Bu, zarar verici bir değişiklik.
  • API'yi basitleştirmek için WorkManager, WorkContinuation ve OneTimeWorkRequest için diğer varargs yöntemleri kaldırıldı. Derleme sorunlarını düzeltmek için mevcut değişkenlerinizi Arrays.asList(...) ile sarmalayabilirsiniz. Her yöntemin tek bağımsız değişkenli sürümlerini eklemeye devam ediyoruz. Bu, zarar verici bir değişiklik.
  • WorkContinuation.combine(OneTimeWorkRequest, *) varyant kaldırıldı. Kafa karıştırıcı bir API sunuyorlardı; mevcut combine yöntemleri daha anlaşılırdı. Bu, zarar verici bir değişiklik.

Hata Düzeltmeleri

  • Marshmallow öncesi uygulamalar, zaten yürütülen bir görevin işlem ölümünü telafi etmede artık daha güvenilir.
  • observeForever aracılığıyla gözlemlenen LiveData, WorkManager aracılığıyla takip edilir. Bu, bir Oda kitaplığı düzeltmesinin eski halidir. b/74477406
  • Serileştirilmiş nesne maksimum boyutunu aşarsa Data.Builder.build() artık bir istisna oluşturuyor. Bu durum daha önce yalnızca düzgün şekilde gerçekleştiremediğiniz bir arka plan ileti dizisinde gerçekleşiyordu.
  • Durdurulan ve iptal edilen diğer ayırt edici çalışmalar; getWorkInfoById(), ListenableWorker.onStopped() boyunca CANCELLED State içeren bir WorkInfo döndürür.
  • ListenableWorker kapsamındaki null Result işlemi, hata olarak değerlendir. b/120362353
  • API 24'ü çalıştıran ve zaman zaman IllegalArgumentException sorunu veren Shield Tabletler için spekülatif düzeltme. b/119484416

Kesin API Değişiklikleri

  • Firebase JobDispatcher desteği yakında sonlandırılacağı için kaldırıldı. Bu nedenle, beta sürümüne girerken work-firebase yapısı artık güncellenmeyecek. Gelecekte bir alternatif eklemeye çalışacağız.
  • Payload, Result olarak birleştirildi. Result, artık Result.success() (veya Result.success(Data)), Result.failure() (veya Result.failure(Data)) ve Result.retry() aracılığıyla elde edebileceğiniz üç somut uygulamaya sahip bir "bağımsız sınıf" haline geldi. ListenableFuture öğeleriniz artık Payload yerine Result sonucunu veriyor. Worker, Data çıkışı için getter ve setter yöntemlerine sahip değil.
  • Operation.await() ve ListenableFuture.await() Kotlin uzantısı yöntemleri eklendi.
  • Operation.getException(), Operation.getThrowable() olarak yeniden adlandırıldı.
  • Bu öğeye başvuruda bulunan ContentUriTriggers sınıfı ve yöntemleri artık herkese açık olarak kullanılamaz.
  • API'yi basitleştirmek için WorkManager, WorkContinuation ve OneTimeWorkRequest için diğer varargs yöntemleri kaldırıldı. Derleme sorunlarını düzeltmek için mevcut değişkenlerinizi Arrays.asList(...) ile sarmalayabilirsiniz. Her yöntemin tek bağımsız değişkenli sürümlerini eklemeye devam ediyoruz.
  • WorkContinuation.combine(OneTimeWorkRequest, *) varyant kaldırıldı. Kafa karıştırıcı bir API sunuyorlardı; mevcut combine yöntemleri daha anlaşılırdı.

Sürüm 1.0.0-alpha11

8 Kasım 2018

Bu sürüm, beta itibarıyla kararlı API haline gelecek birçok değişiklik içeriyor. Bu sürümde önemli API değişiklikleri var. Lütfen aşağıdaki Arı Çevrici API Değişiklikleri bölümüne bakın.

API Değişiklikleri

  • work-runtime-ktx, yeni bir CoroutineWorker sunuyor.
  • WorkStatus, WorkInfo olarak yeniden adlandırıldı. Karşılık gelen tüm getStatus yöntemi varyantları, karşılık gelen getWorkInfo varyantlarına göre yeniden adlandırıldı. Bu, zarar verici bir değişiklik.
  • ListenableWorker.onStopped(), artık WorkRequest işleminin iptal edilip edilmediğini temsil eden bir boole bağımsız değişkenini kabul etmiyor. WorkManager artık bu ayrımı yapmamaktadır. Bu, zarar verici bir değişiklik.
  • androidx.work.test paketinin adı, androidx.work.testing paketi olarak değiştirildi. Bu, zarar verici bir değişiklik.
  • Constraints üzerindeki ayarlayıcılar artık herkese açık API'nin bir parçası değil. Bu, zarar verici bir değişiklik.
  • WorkerParameters.getTriggeredContentUris() ve WorkerParameters.getTriggeredContentAuthorities() daha önce dizi döndürdü. Artık bu yöntemler Koleksiyonlar döndürür. Bu, zarar verici bir değişiklik.
  • ListenableWorker.onStartWork(), ListenableWorker.startWork() olarak yeniden adlandırıldı. Bu, zarar verici bir değişiklik.
  • WorkStatus oluşturucu artık herkese açık API'nin bir parçası değil. Bu, zarar verici bir değişiklik.
  • Configuration.getMaxJobSchedulerID() ve Configuration.getMinJobSchedulerID(), sırasıyla Configuration.getMinJobSchedulerId() ve Configuration.getMaxJobSchedulerId() olarak yeniden adlandırıldı. Bu, zarar verici bir değişiklik.
  • API'nin ergonomisini iyileştirmek için herkese açık API'ye çok sayıda @NonNull ek açıklaması eklendi.
  • WorkContinuation oluşturmak zorunda kalmadan benzersiz OneTimeWorkRequest'leri sıraya koymak için WorkManager.enqueueUniqueWork() API ekleyin.
  • WorkManager üzerindeki tüm enqueue ve cancel yöntemleri artık yeni bir Operation türü döndürüyor. Bu, zarar verici bir değişiklik.
  • enqueue işlevinin hiçbir değişkeni artık WorkRequest için değişkenleri kabul etmiyor. Bu, zarar verici bir değişiklik. Bunun yerine Koleksiyonlar'ı kullanın. Mevcut kodu değiştirmek için Arrays.asList() kodunu kullanabilirsiniz. Bu uygulamanın amacı, API yüzeyini ve yöntem sayısını azaltmaktır.
  • İşlem başına WorkManager işlemini birden fazla kez initialize yapmaya çalışmak artık IllegalStateException sonucunu verir. Bu, zarar verici bir değişiklik.

Hata Düzeltmeleri

  • work-runtime-ktx yapısındaki WorkRequest.Builder öğeleri artık ListenableWorker kullanıyor. b/117666259 düzeltmeleri
  • PeriodicWork uygulamasının bir sonraki çalışma zamanının gelecekte olduğundan emin olun. b/118204399 düzeltmeleri
  • Uygulama başlatılırken WorkManager'ı kullanırken olası disk G/Ç'sini kaldırın. b/117796731 düzeltmeleri
  • WorkConstraintsTracker öğesinde bir yarış durumunu düzeltin. android-workmanager/issues/56 sorunlarını düzeltir

Kesin API Değişiklikleri

  • WorkStatus, WorkInfo olarak yeniden adlandırıldı. Karşılık gelen tüm getStatus yöntemi varyantları, karşılık gelen getWorkInfo varyantlarına göre yeniden adlandırıldı.
  • ListenableWorker.onStopped(), artık WorkRequest işleminin iptal edilip edilmediğini temsil eden bir boole bağımsız değişkenini kabul etmiyor. WorkManager artık bu ayrımı yapmamaktadır.
  • androidx.work.test paketinin adı, androidx.work.testing paketi olarak değiştirildi.
  • Constraints üzerindeki ayarlayıcılar artık herkese açık API'nin bir parçası değil.
  • WorkerParameters.getTriggeredContentUris() ve WorkerParameters.getTriggeredContentAuthorities() daha önce dizi döndürdü. Artık bu yöntemler Koleksiyonlar döndürür.
  • ListenableWorker.onStartWork(), ListenableWorker.startWork() olarak yeniden adlandırıldı.
  • WorkStatus oluşturucu artık herkese açık API'nin bir parçası değil.
  • Configuration.getMaxJobSchedulerID() ve Configuration.getMinJobSchedulerID(), sırasıyla Configuration.getMinJobSchedulerId() ve Configuration.getMaxJobSchedulerId() olarak yeniden adlandırıldı.
  • WorkManager üzerindeki tüm enqueue ve cancel yöntemleri artık yeni bir Operation türü döndürüyor.
  • enqueue işlevinin hiçbir değişkeni artık WorkRequest için değişkenleri kabul etmiyor.
  • İşlem başına WorkManager işlemini birden fazla kez initialize yapmaya çalışmak artık IllegalStateException sonucunu verir.

Sürüm 1.0.0-alfa10

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 var. Lütfen aşağıdaki Arı Çevrici API Değişiklikleri bölümüne bakın.

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

API Değişiklikleri

  • Önceden varsayılan olarak kullanılan tüm deprecated yöntemleri ve sınıfları (özellikle varsayılan Worker oluşturucusu) kaldırıldı. Bu, son derece önemli bir API değişikliğidir.
  • NonBlockingWorker dersinin adı ListenableWorker olarak değiştirildi. Bu sınıf artık herkese açık bir sınıf olup kullanıma hazır.
    • ListenableWorker, ana iş parçacığında çağrılan ListenableFuture<Payload> onStartWork() adlı soyut yönteme erişim sağlar. İşleri eşzamansız olarak başlatmak ve işlemek size kalmıştır. İşiniz bittiğinde ListenableFuture uygun şekilde güncellemeniz gerekir. ListenableFuture öğelerinin referans uygulamaları, alpha02 içindeki Futures paketinde sağlanmıştır (WorkManager bölümünün altına bakın).
    • Worker, ListenableWorker kapsamını genişletir ve soyut bir Result doWork() yöntemiyle çalışmaya devam eder.
    • Bazı yöntemler ve üyeler Worker öğesinden ListenableWorker grubuna karıştırıldı.
    • Yakında, Kotlin eş yordamlarını (kararlı sürümler yayınlandıktan sonra) ve RxJava2 kullanan ListenableWorker'ler için referans uygulamalar sağlayacağız.
  • WorkerFactory arayüzü ve DefaultWorkerFactory somut uygulama, WorkerFactory adlı soyut bir sınıfta birleştirildi. Uygulama, varsayılan yansıtmaya dayalı davranışın, kullanıcı tarafından oluşturulan tüm WorkerFactory örnekleri için son adım girişimi olarak çağrılmasını sağlar. Bu, zarar verici bir değişiklik.
  • WorkManager.synchronous(), WorkContinuation.synchronous() ve ilgili tüm yöntemler kaldırıldı. ListenableFuture<Void>, API'deki birçok yöntemin döndürme türü olarak eklendi. Bu, son derece önemli bir API değişikliğidir.
    • Artık ListenableFuture öğelerini kullanarak eşzamanlı olarak alma ve gözlem yapabilirsiniz. Örneğin, WorkManager.enqueue() eskiden void döndürürken artık ListenableFuture<Void> döndürüyor. İşlem tamamlandığında kod çalıştırmak için ListenableFuture.addListener(Runnable, Executor) veya ListenableFuture.get() yöntemini çağırabilirsiniz.
    • Bu ListenableFuture öğeleri işlemin başarılı veya başarısız olduğunu değil, yalnızca işlemin tamamlandığını belirtir. Bu bilgileri bulmak için yine de bir dizi WorkManager yöntemi kullanmanız gerekecektir.
    • Bu nesnelere yapılan cancel() çağrılarını yoksayıyoruz. Çünkü bunlar kafa karıştırıcıdır ve anlaşılması güçtür (işlemi mi yoksa sonucunda ortaya çıkan çalışmayı mı iptal ediyorsunuz?). Bu, Future sözleşmesi kapsamındadır.
    • Eşzamanlı getStatus* yöntemleriyle benzerliği korumak için ListenableFuture varyant sağladık ve LiveData varyantını döndüren mevcut varyantları, adlarında açıkça "LiveData" bulunacak şekilde yeniden adlandırdık (örneğin, getStatusesByIdLiveData(UUID)). Bu, zarar verici bir API değişikliğidir.

Hata Düzeltmeleri

  • Yinelenen androidx-annotations.pro dosyalarıyla ilgili alfa09'daki bilinen sorun düzeltildi. Gradle dosyanızdan exclude 'META-INF/proguard/androidx-annotations.pro' dosyasını silerek bu geçici çözümü önceki sürüm notlarından kaldırabilirsiniz.
  • Yeni Worker oluşturucuyu tutmak için ProGuard yapılandırmaları eklendi. b/116296569
  • İşin REPLACEd. b/116253486 ve b/116677275 olduğu bir yarış durumunda potansiyel NullPointerException düzeltme
  • WorkContinuation.combine() artık iki veya daha fazla yerine bir veya daha fazla WorkContinuation kabul ediyor. b/117266752

Kesin API Değişiklikleri

  • Önceden varsayılan olarak kullanılan tüm deprecated yöntemleri ve sınıfları (özellikle varsayılan Worker oluşturucusu) kaldırıldı.
  • WorkerFactory arayüzü ve DefaultWorkerFactory somut uygulama, 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 değerini döndürür.

Sürüm 1.0.0-alpha09

19 Eylül 2018

Bilinen Sorun

Şu sorunla karşılaşırsanız: "İşletim sisteminden bağımsız 'META-INF/proGuard/androidx-annotations.pro' yoluna sahip birden fazla dosya bulundu" hatasını alıyorsanız, biz alfa10'da sorunu düzeltirken lütfen aşağıdakini geçici bir çözüm olarak gradle dosyanıza yerleştirin:

Modern

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

Kotlin

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

Hata Düzeltmeleri

  • "100 iş" hatası için gereken bir düzeltme daha eklendi. b/115560696
  • Yarış koşullarından kaynaklanan yabancı anahtar kısıtlama hataları için bazı düzeltmeler eklendi. b/114705286
  • Temel Worker öğesine ConstraintTrackingWorker.onStopped(boolean) çağrı için yetki verildi. b/114125093
  • Firebase JobDispatcher için doğru minimum geri yükleme gecikmesini zorunlu kılın. b/113304626
  • Kitaplık içinde gelişmiş iş parçacığı garantileri.
  • LiveData değerini tekilleştirmeyle ilgili olası sorunları dahili olarak düzeltin.

API Değişiklikleri

  • Artık WorkManager.Configuration öğesinin parçası olarak 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 değerine sahiptir.
    • Worker ve NonBlockingWorker için varsayılan kurucular artık kullanımdan kaldırılmış olarak işaretlendi. Lütfen yeni oluşturucuyu (Worker(Context, WorkerParameters)) kullanın ve super(Context, WorkerParameters) yöntemini çağırın. WorkManager'ın gelecekteki sürümleri, varsayılan oluşturucuyu kaldıracaktır.
  • Yeni ListenableFuture yapısını şirket içinde kullanmaya başladık (Guava bağımlılığı yok). Gelecek sürümlerde, ListenableFutures'ı API'ye ekleyeceğiz. Bu değişiklik, NonBlockingWorker adlı uygulamanın gizlenen olarak gösterilmemesini destekleyecek.
  • TestDriver için TestDriver.setInitialDelayMet(UUID) ve TestDriver.setPeriodDelayMet(UUID) aracılığıyla zamanlı çalışmayı tetikleme özelliği ekleyin. b/113360060

Zarar Veren Değişiklikler

  • Varsayılan Worker ve NonBlockingWorker kurucuları kullanımdan kaldırıldı. Lütfen en kısa zamanda yeni oluşturucuya geçiş yapın. Gelecekteki sürümler, varsayılan oluşturucuyu kaldıracak.

Sürüm 1.0.0-alpha08

27 Ağustos 2018

Hata Düzeltmeleri

  • WorkManager bileşenleri, doğrudan başlatma sırasında etkinleşmemeleri için doğrudan başlatmanın farkında değil olarak açıkça etiketlenmiştir. Gelecekte WorkManager'ın doğrudan önyüklemeyi kullanabilen bir sürümünü sağlayacağız. b/112665532
  • Yeniden denenen çalışmaların çalışmamasına neden olan bir sorun düzeltildi. b/112604021
  • Periyodik çalışmaların tekrar tekrar çalışmaması (yukarıdaki sorunla ilgili) düzeltildi. b/112859683
  • Uygulama işlemi zaten çalışırken uygulanan geri yükleme politikaları kabul edilir.
  • Data öğesinde, sınırın 10 KB olduğunu belirten istisna mesajları düzeltildi.
  • JobScheduler işlemenin tamamlanmasındaki bir gecikmeyi hesaba katmak için Configuration.setMaxSchedulerLimit(int) olan maksimum değer 50'ye düşürüldü. b/112817355

Sürüm 1.0.0-alpha07

16 Ağustos 2018

Hata Düzeltmeleri

  • Sınırsız sayıda sonuç döndürebilen negatif limitleri olan potansiyel bir SQL sorgusu düzeltildi.
  • Yürütülen çalışmalar artık diğer Planlayıcılarda ilgili çalışmanın 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 öğesinde bir ConcurrentModificationException düzeltildi. b/112272753
  • Data.getBooleanArray(String) ve Data.getIntArray(String) döndürme türü notları @NonNull yerine @Nullable olarak değiştirildi. b/112275229

API Değişiklikleri

  • Worker artık NonBlockingWorker adlı yeni bir sınıfın kapsamını genişletiyor. Bu durum mevcut kullanımı etkilemez. Gelecekte NonBlockingWorker, özel ileti dizisi oluşturma çözümleri için tam olarak desteklenen bir varlık haline gelecek.
  • Data.getBooleanArray(String) ve Data.getIntArray(String) döndürme türü notları @NonNull yerine @Nullable olarak değiştirildi. b/112275229
  • Kotlin uzantıları: Map.toWorkData() desteği sonlandırıldı ve mevcut API'lerle daha tutarlı olması için üst düzey workDataOf(vararg Pair<String, Any?>) eklendi.

Sürüm 1.0.0-alpha06

1 Ağustos 2018

Hata Düzeltmeleri

  • İş planlanırken veritabanı kilidi kullanılmasını önleyin. b/111801342
  • Doz modundayken PeriodicWork ürününün zamanında çalışmamasına neden olan hata düzeltildi. b/111469837
  • WorkManager uygulamasının kilitlenmesine neden olan kısıtlamaları izlerken yarış durumunu düzeltin. googlecodelabs/android-workmanager/issues/56
  • WorkRequest.Builder#build() kullanırken benzersiz WorkRequest'ler oluşturun. b/111408337
  • RescheduleReceiver kullanımını, yalnızca ihtiyaç duyulan WorkRequest olduğunda etkinleştirin. b/111765853

Sürüm 1.0.0-alpha05

24 Temmuz 2018

API Değişiklikleri

  • WorkManager.getInstance() için ek açıklama artık @Nullable yerine @NonNull olarak eklendi. Bunun yerine, manuel başlatma durumlarında tekli düzgün şekilde başlatılmazsa yöntem bir IllegalStateException hatası verir. Bu, çok önemli bir API değişikliği.
  • WorkManager ayrıntı düzeyini kontrol edebilen yeni bir API (Configuration.Builder.setMinimumLoggingLevel(int)) eklendi. Varsayılan olarak WorkManager, Log.INFO ve üstünü günlüğe kaydeder.
  • Data.getString() imzası, artık varsayılan bir değer kullanmaması için değiştirildi (dolaylı olarak null). Bu, zarar veren bir API değişikliğidir.
  • Yalnızca dahili kullanım için gereken bazı yöntemler @hide olarak işaretlendi. Constraints kurucusu Data.toByteArray() ve Data.fromByteArray(byte[]) de buna dahildir. Bu, son derece önemli bir API değişikliğidir.

Hata Düzeltmeleri

  • WorkManager, bilinen otomatik yedekleme durumları sırasında artık iş yürütmez. Bu durum, kilitlenmeye yol açmış olabilir. b/110564377
  • JobScheduler kullanılırken PeriodicWorkRequest değerlerinin çift zamanlaması sorunu düzeltildi. b/110798652
  • Cihaz dozundan sonra PeriodicWorkRequest öğelerinin doğru şekilde çalışmamasıyla ilgili bir sorun düzeltildi. b/111469837
  • Firebase JobDispatcher kullanılırken başlangıçtaki gecikmelerle ilgili bir sorun düzeltildi. b/111141023
  • Bazı olası yarış koşulları ve zamanlama sorunları düzeltildi.
  • Artık ihtiyaç duyulmayan BroadcastReceiver hata doğru şekilde serbest bırakıldı.
  • Uygulamalar zorunlu kapatıldıktan sonra yeniden başlatıldığında sağlanan yeniden planlama performansı optimize edildi.
  • Belirtilen WorkRequest öğesinin sıraya alınmasından önce veya sonra TestScheduler.setAllConstraintsMet(UUID) çağrılmasına izin verilir. b/111238024

Zarar Veren Değişiklikler

  • WorkManager.getInstance() için ek açıklama artık @Nullable yerine @NonNull olarak eklendi.
  • Artık varsayılan değeri (dolaylı olarak null) almayacak şekilde Data.getString() imzası değiştirildi.
  • Yalnızca dahili kullanım için gereken bazı yöntemler @hide olarak işaretlendi. Constraints kurucusu Data.toByteArray() ve Data.fromByteArray(byte[]) de buna dahildir.

Sürüm 1.0.0-alpha04

26 Haziran 2018

Hata Düzeltmeleri

  • PeriodicWorkRequest işlemleri artık AlarmManager tabanlı uygulama kullanılırken doğru şekilde yeniden planlanıyor.
  • Zorunlu olarak durdurma veya yeniden başlatma sonrasında tüm çalışanların yeniden planlanmasında yaşanabilecek olası ANR düzeltildi. b/110507716
  • Çeşitli WorkManager API'lerine boş değer atanabilirliği ek açıklamaları eklendi. b/110344065
  • Çalışan yürütmesi sırasında oluşan yakalanmamış istisnaları günlüğe kaydedin. b/109900862
  • WorkManager'ın eski bir sürümüne geri dönmeye karar vermeniz durumunda yıkıcı veritabanı taşıma işlemlerine izin verilir. b/74633270
  • Yinelenen örtülü etiketler oluşturulurken yaşanan taşıma kilitlenmesi düzeltildi. Bu, yalnızca aynı örtülü etiket biçimini kendiniz kullandığınızda ortaya çıkan çok nadir görülen bir sorundur.

Sürüm 1.0.0-alpha03

19 Haziran 2018

Hata Düzeltmeleri

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

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

  • İçerik URI'si tetikleyicilerine sahip işler artık yeniden başlatmalar sırasında devam ediyor. b/80234744

  • Belge güncellemeleri. b/109827628, b/109758949, b/80230748

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

  • work-runtime-ktx bağımlılığı kullanılırken 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() uygulamasının eşzamanlı sürümü olan getStatusesSync() eklendi.
  • Worker, kullanıcı tarafından başlatılan iptal ile işletim sistemi tarafından istenen geçici durdurma arasında ayrım yapabilir. Herhangi bir durdurma işlemi istenirse Worker.isStopped(), true değerini döndürür. Worker.isCancelled(), iş açıkça iptal edildiğinde true değerini döndürür. b/79632247
  • API 28'de JobParameters#getNetwork() için destek ekleyin. Bu bilgi, Worker.getNetwork() üzerinden açığa çıktı.
  • JobScheduler veya AlarmManager'ye kaç iş gönderilebileceğini zorunlu kılabilmeniz için Configuration.Builder.setMaxSchedulerLimit(int maxSchedulerLimit) eklendi. Bu işlem, WorkManager uygulamasının mevcut JobScheduler yuvalarınızın tamamını almasını engellemeye yardımcı olur.
  • WorkManager tarafından kullanılabilecek bir JobScheduler iş kimliği aralığını tanımlamaya yardımcı olan Configuration.setJobSchedulerJobIdRange(int minJobSchedulerId, int maxJobSchedulerId) eklendi. b/79996760
  • Worker.getRunAttemptCount(), belirli bir Worker için mevcut çalıştırma sayısını döndürür. b/79716516
  • WorkManager.enqueueUniquePeriodicWork(String uniqueWorkName, ExistingPeriodicWorkPolicy existingPeriodicWorkPolicy, PeriodicWorkRequest periodicWork), benzersiz PeriodicWorkRequest öğelerini sıraya almanıza olanak tanır. b/79600647
  • WorkManager.cancelAllWork(), tüm Worker öğelerini iptal eder. WorkManager'a bağlı kitaplıklar, dahili durumun ek temizlenmesi için WorkManager.getLastCancelAllTimeMillis() kullanılarak 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 için tam nitelikli sınıf adı olan bir örtülü etiket eklendi. Bu, tag olmadan veya id kullanılamadığında WorkRequest öğelerinin kaldırılmasına olanak tanır. b/109572351

Zarar Veren Değişiklikler

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

Sürüm 1.0.0-alpha02

24 Mayıs 2018

Hata Düzeltmeleri

  • State.isFinished() işletim sisteminde NullPointerException düzeltildi. b/79550068
  • Worker etkinliğin Application.onCreate() tarihinde yeniden planlanmasına neden olan bir sorun düzeltildi. b/79660657
  • İşletim sisteminin izin verdiğinden daha fazla çalışma planlamanıza neden olan bir sorun düzeltildi. b/79497378
  • Worker ile ilişkili uyanık kalma kilitlerinin temizlemesi arka plan ileti dizisine taşındı.
  • Beklemedeki tüm işler tamamlandığında AlarmManager uygulaması artık düzgün şekilde temizleniyor.
  • İngilizce olmayan yerel ayarları etkileyen SQL sorgularının temizlenmesi düzeltildi. b/80065360
  • Data grubunda float desteği eklendi. b/79443878
  • Data.Builder.putAll() artık Builder öğesinin bir örneğini döndürüyor. b/79699162
  • Dokümanlarda daha fazla javadoc ve düzeltmeler. b/79691663

API Değişiklikleri

  • Worker kullanıcıları durdurulmaya tepki verebilir. Worker.isStopped(), Worker durdurulup durdurulmadığını kontrol etmek için kullanılabilir. Worker.onStopped(), basit temizleme işlemleri yapmak için kullanılabilir.
  • Worker.getTags() API, Worker ile ilişkilendirilmiş Set etiket döndürür.
  • Süre ve TimeUnit içeren API'ler için javax.time.Duration aşırı yüklemeleri eklendi. Bu koruma @RequiresApi(26) tarafından yönetiliyor.
  • WorkManager uzantı, androidx.work.ktx paketinden androidx.work paketine taşındı. Eski uzantılar kullanımdan kaldırıldı ve gelecekteki bir sürümde kaldırılacaktır.
  • Configuration.withExecutor() desteği sonlandırıldı. Bunun yerine Configuration.setExecutor() politikasını kullanın.

Sürüm 1.0.0-alpha01

8 Mayıs 2018

WorkManager, garantili, kısıtlamaya duyarlı arka plan çalışmalarının planlanmasını ve yürütülmesini kolaylaştırır. Bu ilk sürüm: 1.0.0-alpha01.