WorkManager

WorkManager API, ertelenebilir, eşzamansız görevlerin planlanmasını kolaylaştırır ve güvenilir bir şekilde çalıştırılması gerekir. Bu API'ler görev oluşturmanıza ve görevi Çalışma kısıtlamaları karşılandığında çalışacak WorkManager.
Son Güncelleme Kararlı Sürüm Yayın Adayı Beta Sürümü Alfa Sürümü
4 Eylül 2024 2.9.1 - - 2.10.0-alfa03

Bağımlılıkları bildirme

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

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

Eski

dependencies {
    def work_version = "2.9.1"

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

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

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

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

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

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

Kotlin

dependencies {
    val work_version = "2.9.1"

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

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

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

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

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

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

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

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

Geri bildirim

Geri bildiriminiz Jetpack'i iyileştirmemize yardımcı olacaktır. Yeni sorunlarla karşılaşırsanız veya fikir edinebilirsiniz. Daha fazla bilgi için lütfen mevcut sorunlar tıklayın. Oyunuzu mevcut bir soruna eklemek için yıldız düğmesini tıklayın.

Yeni sayı oluştur

Sorun İzleyici dokümanlarına bakın konulu videomuzu izleyin.

Sürüm 2.10

Sürüm 2.10.0-alpha03

4 Eylül 2024

androidx.work:work-*:2.10.0-alpha03 yayınlandı. Sürüm 2.10.0-alpha03 bu kaydetmeleri içerir.

Yeni Özellikler

  • İşler'e WorkManager kaynağından izleme etiketleri eklendi. Bu etiketler, yürütülmekte olan Çalışanın adını içereceği için "adb shell dumpsys businessscheduler" işinin çok daha kolay anlaşılmasını sağladı. WorkManager önemli alanlarının etrafına da iz bölümleri eklendi.

API Değişiklikleri

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

Hata Düzeltmeleri

  • İşin ön plan türü Android 14 ön koşul izinleri iptal edildiğinde WorkManager ürününün uzun çalışan bir çalışanı (ör. ön plan çalışanı) yeniden başlatmaya çalışması nedeniyle oluşan kilitlenme düzeltildi. (b/333957914)
  • Bu durum, AGP 7.3 veya sonraki bir sürümle R8 kullanılırken (ör. R8 sürüm 3.3) ve AGP 8.1 veya sonraki sürümler kullanılırken tüm derlemeler (ör. D8 sürümü 8.1) için API modellemesi aracılığıyla otomatik olarak gerçekleştirildiğinden, yeni platform API'lerine erişimin manuel olarak özetlenmesi kaldırıldı. AGP kullanmayan müşterilerin D8 sürümüne 8.1 veya daha yeni bir sürüme geçmeleri önerilir. Daha fazla bilgi için bu makaleyi inceleyin. (Ia60e0, b/345472586)

Sürüm 2.10.0-alpha02

17 Nisan 2024

androidx.work:work-*:2.10.0-alpha02 yayınlandı. Sürüm 2.10.0-alpha02 bu kaydetmeleri içerir.

API Değişiklikleri

  • WorkManager içindeki yapılandırılabilir bir @RestrictTo Tracer aracılığıyla iz aralıkları yayınlama özelliği eklendi. (I17d7f, b/260214125)
  • CoroutineWorker ürününün yürütüldüğü görev dağıtıcının kontrolü için Configuration.workerCoroutineContext e-posta adresine eklendi. WorkManager içinde Dispatchers.Default kullanımından tamamen kaçınılmasına yardımcı olur. (Icd1b7)
  • Çalışanlar için özel istisna işleyiciler ekleme (Ib1b74, b/261190695)
  • OneTimeWorkRequest.Builder ve PeriodicWorkRequest.Builder artık Class yerine KClass ile oluşturulabilir: val request = OneTimeWorkRequest.Builder(Worker::class).setConstraints(...).build() (Ib55f6)
  • WorkManager sınıf Kotlin'e taşındı. Artık LiveData, ListenableFuture veya Flow döndüren yöntemler doğru null değer bilgileri sağlıyor. Bu durum, müşterilerin iş yönetiminde kaynak kodundaki boş değer varsayımları yanlışsa, (If6757)

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 kaydetmeleri içerir.

Yeni Özellikler

  • Geliştiriciler, Constraints.setRequiredNetworkRequest yöntemini kullanarak bir çalışan için kısıtlama olarak NetworkRequest belirtebilir. Bu sayede, bu çalışanın hangi ağı çalıştıracağı konusunda daha ayrıntılı kontrol sahibi olursunuz.

API Değişiklikleri

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

Sürüm 2.9

Sürüm 2.9.1

7 Ağustos 2024

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

Hata Düzeltmeleri

  • İşin ön plan türü iptal edilmiş Android 14 ön koşul izinleri varken WorkManager ürününün uzun çalışan bir çalışanı (ör. ön plan çalışanı) yeniden başlatmaya çalışması nedeniyle oluşan kilitlenme düzeltildi. (b/333957914)

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 kaydetmeleri içerir.

2.8.0'dan bu yana önemli değişiklikler

  • Flow sn. üzerinden gözlemlenebilirlik Çalışanların ilerleme durumu, LiveData yerine artık WorkManager.getWorkInfosFlow ve benzer yöntemler aracılığıyla Akış üzerinden gözlemlenebilir.
  • Artık WorkManager, bir çalışanın daha önce neden durdurulduğuna dair ipucu sağlıyor. getStopReason() yöntemi kullanılarak çalışan tarafından veya getStopReason() aracılığıyla WorkInfo üzerinden sorgulanabilir.
  • Periyodik çalışanların setNextScheduleTimeOverride aracılığıyla hassas programlanması. Bu, bir sonraki Periyodik çalışma programının dinamik olarak hesaplanmasına olanak tanır. Bu program, uyarlanabilir yenileme süreleri, özel yeniden deneme davranışı gibi gelişmiş özellikleri uygulamak veya kullanıcı her sabah sabah uyanmadan önce bir haber feed'i çalışanının çalışmasını sağlamak için kullanılabilir. Şu anda çalışan bir çalışanın iptal edilmesini önlemek için bir sonrakini planlarken ExistingPeriodicWorkPolicy.UPDATE bu tekniklerle kullanılmalıdır.
  • WorkManager'ın iş parçacığı eşleştirme üretim 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 içinde kullanılabilir.
  • CoroutineWorker gibi eş yordam API'leri, ek yapı çalışma zamanı-ktx'ten ana yapı iş çalışma zamanına taşınmıştır. Work-runtime-ktx şu anda boş.

API Değişiklikleri

  • stopReason, WorkInfo adlı çalışma alanına 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 kapatılabileceğinden stopReason raporlaması açısından kullanışlı olabilir. (I21386)
  • Clock öğesinin yapılandırma aracılığıyla ayarlanmasına ve Çalışan testlerinin yürütme sıralamasını artırmak için kullanılmasına izin ver. (Ic586e)
  • ListenableWorker öğesine, çalışanın neden durdurulduğuna dair ipucu veren getStopReason() yöntemi eklendi. (I07060)
  • CloseGuard'ın kaynak sızıntısı hakkındaki uyarısını önlemek için WorkManagerTestInitHelper#closeWorkDatabase() eklendi. (Ia8d49)
  • WorkInfo öğesinin oluşturucusu şu anda herkese açık. Bu özellik testlerde yararlı olabilir. (Ia00b6, b/209145335)
  • work-runtime-ktx artık boş. CoroutineWorker ve Kotlin'e özgü diğer yardımcı programlar artık çalışma zamanındaki ana yapıda mevcut. (I71a9a)
  • Periyodik çalışma programlarının (I3b4da) doğru ayarlanmasına olanak tanıyan setNextScheduleTimeOverride yöntemi eklendi
  • getNextScheduleTimeMillis, planlanan çalışma zamanı bilgisini almak için WorkInfo görevine eklendi. (I797e4)
  • İlk gecikme ve periyodiklik bilgileri WorkInfo bölümüne eklenir. (I52f2f)
  • getWorkInfosByTagFlow, getWorkInfoByIdFlow, getWorkInfosForUniqueWorkFlow, getWorkInfosFlow (If122a) yöntemleri aracılığıyla Akışlar aracılığıyla çalışanları gözlemleme yöntemi eklendi
  • Constraints' için eksik @RequiresApi(...) ek açıklamaları eklendi kurucuları ve özellikleri. Bunlar, WorkManager ürününün ilk sürümlerinden kalan Constraints.Builder içindeki setterlerdeki karşılık gelen ek açıklamalarla uyumlu hale getirildi. (I6d7d2)
  • Yüksek yük altında eksik içerik güncellemelerinin olmaması için WorkManager artık içerik URI'si çalışanlarına JobScheduler'te garantili slotlar sağlamak için ayrı bir sınıra sahip. Sınır, Configuration.Builder.setContentUriTriggerWorkersLimit aracılığıyla yapılandırılabilir. (Ic128f)
  • Kısıtlamalar WorkInfo bölümüne eklenir. (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 kaydetmeleri 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ı. Sürüm 2.9.0-beta01 bu kaydetmeleri 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 kaydetmeleri içerir.

Yeni Özellikler

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

API Değişiklikleri

  • stopReason, WorkInfo adlı çalışma alanına eklendi. Çalışanın çalışmasından stopReason sonra kullanılabilir hale gelir. Bir çalışan durdurulduğunda uygulamanın kendisi çok hızlı bir şekilde kapatılabileceğinden stopReason raporlaması açısından kullanışlı olabilir. (I21386)
  • Saat'in yapılandırma aracılığıyla ayarlanmasına ve Çalışan testlerinin yürütme sıralamasını yürütmek için kullanılmasına izin ver. (Ic586e)
  • ListenableWorker öğesine, çalışanın neden durdurulduğuna dair ipucu veren getStopReason() yöntemi eklendi. (I07060)
  • CloseGuard'ın kaynak sızıntısı hakkındaki uyarısını önlemek için WorkManagerTestInitHelper#closeWorkDatabase() eklendi. (Ia8d49)

Hata Düzeltmeleri

  • TestDriver kullanarak overrideNextScheduleTime öğesini atlama özelliği eklendi ve test edilebilirliğiyle 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 kaydetmeleri içerir.

Yeni Özellikler

  • Flow sn. üzerinden gözlemlenebilirlik Çalışanların ilerleme durumu, LiveData yerine artık WorkManager.getWorkInfosFlow ve benzer yöntemler aracılığıyla Akış üzerinden gözlemlenebilir.
  • Periyodik çalışanların setNextScheduleTimeOverride aracılığıyla hassas programlanması. Bu, bir sonraki Periyodik çalışma programının dinamik olarak hesaplanmasına olanak tanır. Bu program, uyarlanabilir yenileme süreleri, özel yeniden deneme davranışı gibi gelişmiş özellikleri uygulamak veya kullanıcı her sabah sabah uyanmadan önce bir haber feed'i çalışanının çalışmasını sağlamak için kullanılabilir. Şu anda çalışan bir çalışanın bir sonrakini planlanırken iptal edilmesini önlemek için bu tekniklerle ExistingPeriodicWorkPolicy.UPDATE kullanılmalıdır.
  • WorkManager, ileti dizisi eşleştirme üretim ile 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 şu anda boş.

API Değişiklikleri

  • WorkInfo öğesinin oluşturucusu şu anda herkese açık. Bu işlem testlerde yararlı 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 (I3b4da) doğru ayarlanmasına olanak tanıyan setNextScheduleTimeOverride yöntemi eklendi
  • getEarliestRunTimeMillis adlı dosya getNextScheduleTimeMillis olarak yeniden adlandırıldı. (I2bd7a)
  • Bir sonraki planlanan çalışma zamanı bilgisi WorkInfo bölümüne eklendi. (I797e4)
  • İlk gecikme ve periyodiklik bilgileri WorkInfo bölümüne eklenir. (I52f2f)
  • getWorkInfosByTagFlow, getWorkInfoByIdFlow, getWorkInfosForUniqueWorkFlow, getWorkInfosFlow (If122a) yöntemleri aracılığıyla Akışlar aracılığıyla çalışanları gözlemleme yöntemi eklendi
  • Kısıtlamalar'a eksik @RequiresApi(...) ek açıklamaları eklendi kurucuları ve özellikleri. Bunlar, WorkManager ürününün ilk sürümlerinden kalan Constraints.Builder içindeki setterlerdeki karşılık gelen ek açıklamalarla uyumlu hale getirildi. (I6d7d2)
  • Yüksek yük altında eksik içerik güncellemelerinin olmaması için WorkManager artık içerik URI'si çalışanlarına JobScheduler'te garantili slotlar sağlamak için ayrı bir sınıra sahip. Sınır, Configuration.Builder.setContentUriTriggerWorkersLimit aracılığıyla yapılandırılabilir. (Ic128f)
  • Kısıtlamalar WorkInfo bölümüne eklenir. (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 kaydetmeleri içerir.

Hata Düzeltmeleri

  • Daha önce iki eşzamanlı yayını doğru şekilde işlemeyen RescheduleReceiver özelliğindeki 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 kaydetmeleri içerir.

2.7.0'dan bu yana önemli değişiklikler

Yeni Özellikler

API Değişiklikleri

  • WorkManager.updateWork, orijinal sıraya alma zamanını ve zincirlemeyi koruyarak çalışmayı güncellemek için eklendi.(I9a248, b/219446409)
  • ExistingPeriodicWorkPolicy.UPDATE eklendi. Bu politika, periyodik bir çalışmanın adıyla güncellenmesine olanak tanır. Mevcut REPLACE sürümüne benzer, ancak daha az rahatsız edicidir: Çalışır durumda olan bir çalışanı iptal etmez ve sıraya alma süresini korur. İlk gecikme ve süre, güncelleme süresi yerine orijinal sıraya alma zamanına göre hesaplanır. REPLACE ve UPDATE arasındaki çok benzer isimler arasındaki karışıklığı azaltmak için REPLACE desteği sonlandırıldı. REPLACE işlevinin önceki anlamını korumak istiyorsanız yeni eklenen CANCEL_AND_REENQUEUE, REPLACE ile bire bir aynı olacak. (I985ed, b/219446409)
  • setSchedulingExceptionHandler aracılığıyla Consumer<Throwable> sağlayan planlama istisnalarına müdahale etme özelliği eklendi)
  • WorkManager'ı başlatmaya çalışırken sorun olup olmadığını belirlemek için setInitializationExceptionHandler aracılığıyla Consumer<Throwable> sağlama özelliği eklendi.
  • OneTimeWorkRequest ve için satır içi yardımcılar PeriodicWorkRequest, androidx.work:work-runtime-ktx kuruluş biriminden androidx.work:work-runtime kuruluş birimine taşındı (I0010f, b/209145335)
  • Doğrudan WorkQuery oluşturmak için WorkQuery.fromIds, WorkQuery.fromStates, WorkQuery.fromUniqueWorkNames, WorkQuery.fromTags yardımcı yöntemleri eklendi. (b/199919736) (If48f2, b/199919736)
  • getForegroundInfo, Worker koleksiyonuna eklendi. (Ic1ead)
  • RxWorker Hem RxJava 2 hem de RxJava 3 için artık setForeground Completable değeri döndürülüyor. Bu değer, ListenableFuture döndüren setForegroundInfoAsync yerine kullanılabilir.
  • RxWorker Hem RxJava 2 hem de RxJava 3 için, ListenableFuture döndüren getForegroundInfoAsync yerine kullanılabilecek getForegroundInfo Single değeri döndürülür. (b/203851459)
  • Kısıtlamalar, Kotlin kullanıcılarına kolaylık sağlayan Constraints.Builder kullanmak yerine doğrudan oluşturulabilir. (Idc390, b/137568653)
  • WorkManager adlı cihazın başlatılıp başlatılmadığını kontrol etme özelliği eklendi. Ayrıca, kitaplık geliştiricilerinin WorkManager ürününün başlatıldığı yapılandırmayı alabilmesi için yeni bir getConfiguration() API'si de eklendi. (I6eff3, b/212300336)

Hata Düzeltmeleri

  • Çalışanların yük altındayken hemen çalışmasını önleyen açgözlü planlayıcıyla ilgili bir sorun düzeltildi. (I9686b, b/248111307)
  • SDK 33 ve sonraki sürümlerde POST_NOTIFICATIONS izni verilmesini gerektiren API'lere @RequiresPermission eklendi. (Ie542e, b/238790278)
  • suspendCancellableCoroutine kullanırken ListenableFuture içinde CoroutineScope içinde iptal işlemlerini uygulayın.

Sürüm 2.8.0-rc01

7 Aralık 2022

androidx.work:work-*:2.8.0-rc01 yayınlandı. Sürüm 2.8.0-rc01 bu kaydetmeleri içerir.

Yeni Özellikler

  • Bu sürümde yeni özellik yok. Bu esasen bir sürüm yükseltmesidir

Sürüm 2.8.0-beta02

9 Kasım 2022

androidx.work:work-*:2.8.0-beta02 yayınlandı. Sürüm 2.8.0-beta02 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • WorkInfo öğesinde daha önce yeni nesil bilgileri dikkate almayan 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ı. Sürüm 2.8.0-beta01 bu kaydetmeleri içerir.

Hata Düzeltmeleri

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

Sürüm 2.8.0-alpha04

7 Eylül 2022

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

API Değişiklikleri

  • Çalışan neslini döndüren WorkerInfo.getGeneration() ve WorkerParameters.getGeneration() eklendi. Bir çalışanın, WorkManager.updateWork veya WorkManager.enqueueUniquePeriodicWork aracılığıyla ExistingPeriodicWorkPolicy.UPDATE kullanılarak güncellenmiş olması durumunda birden fazla nesli var. Çalışan çalışıyorsa ve çalışan yürütülürken bir güncelleme olmuşsa bu yöntemin, şu anda çalışan çalışanından daha yeni bir nesli döndürülebileceğini unutmayın. (I665c5, b/219446409) (I128a9, b/219446409)
  • WorkManager ilk kullanıma hazırlanırken sorun olup olmadığını belirlemek için kullanılabilecek bir İstisna İşleyici 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 kaydetmeleri içerir.

Yeni Özellikler

  • WorkRequests öğesini rahatsız edici olmayan bir şekilde güncelleme olanağı eklendi. Bu sayede orijinal sıraya ekleme zamanı, zincir oluşturma vb. korunacak. Daha fazla ayrıntı için WorkManager.updateWork ve ExistingPeriodicWorkPolicy.UPDATE bölümlerine bakın.

API Değişiklikleri

  • WorkManager.updateWork, orijinal sıraya alma zamanını ve zincirlemeyi koruyarak çalışmayı güncellemek için eklendi.(I9a248, b/219446409)
  • ExistingPeriodicWorkPolicy.UPDATE eklendi. Bu politika, periyodik bir çalışmanın adıyla güncellenmesine olanak tanır. Mevcut REPLACE sürümüne benzer, ancak daha az rahatsız edicidir: Çalışır durumda olan bir çalışanı iptal etmez ve sıraya alma süresini korur. İlk gecikme ve süre, güncelleme süresi yerine orijinal sıraya alma zamanına göre hesaplanır. REPLACE çok benzer adlara sahip REPLACEve UPDATE arasındaki karışıklığı azaltmak için kullanımdan kaldırıldı. REPLACE işlevinin önceki anlamını korumak istiyorsanız yeni eklenen CANCEL_AND_REENQUEUE, REPLACE ile bire bir aynı olacak. (I985ed, b/219446409)
  • SchedulingExceptionHandler tanımlayarak planlama istisnalarına müdahale etme özelliği ekleyin. (I033eb)
  • OneTimeWorkRequest ve için satır içi yardımcılar PeriodicWorkRequest, androidx.work:work-runtime-ktx kuruluş biriminden androidx.work:work-runtime kuruluş birimine taşındı (I0010f, b/209145335)

Hata Düzeltmeleri

  • SDK 33 ve sonraki sürümlerde POST_STATES 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 kaydetmeleri içerir.

API Değişiklikleri

  • Kısıtlamalar, Kotlin kullanıcıları için kullanışlı olan Oluşturucu'yu kullanmak yerine artık doğrudan oluşturulabilir. (Idc390, b/137568653)
  • WorkManager adlı cihazın başlatılıp başlatılmadığını kontrol etme özelliği eklendi. Ayrıca, kitaplık geliştiricilerinin WorkManager ürününün başlatıldığı yapılandırmayı alabilmesi için yeni bir getConfiguration() API'si de eklendi. (I6eff3, b/212300336)

Sürüm 2.8.0-alpha01

12 Ocak 2022

androidx.work:work-*:2.8.0-alpha01 yayınlandı. Sürüm 2.8.0-alpha01 bu kaydetmeleri içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

  • suspendCancellableCoroutine kullanırken ListenableFuture içinde CoroutineScope içinde iptal işlemlerini uygulayı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ı. Sürüm 2.7.1 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • suspendCancellableCoroutine kullanılırken CoroutineScope içindeki iptaller ListenableFuture öğesine aktarılır. (I77e63)
  • Geciken iş istekleri hızlandırılmış olarak işaretlendiğinde hemen bir istisna yayınlanı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 kaydetmeleri içerir.

2.6.0'dan bu yana önemli değişiklikler

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

  • setExpedited(...) kullanılırken WorkManager, Android 12'den itibaren JobScheduler'daki hızlandırılmış işlere yetki verirken 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 kaydetmeleri içerir.

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

Sürüm 2.7.0-beta01

1 Eylül 2021

androidx.work:work-*:2.7.0-beta01 yayınlandı. Sürüm 2.7.0-beta01 bu kaydetmeleri içerir.

Yeni Özellikler

  • WorkManager'ı başlatırken çok işlemli SQLite çakışmasını azaltın.

API Değişiklikleri

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

Hata Düzeltmeleri

  • getForegroundInfoAsync() ö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 kaydetmeleri içerir.

Bu sürüm, WorkManager 2.6.0-beta02 sürümündeki 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, 2.6.0-beta01 sürümündeki değişiklikleri de içerir.

API Değişiklikleri

Hata Düzeltmeleri

  • Hızlandırılmış işler yeniden planlandığında artık hızlandırılmazlar. Bunlar normal işler haline gelir.

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 kaydetmeleri 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 kaydetmeleri içerir.

Hata Düzeltmeleri

  • Android 12 hedeflenirken bir kilitlenmeyi düzeltmek için PendingIntent değişkenliğini müstehcen 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 kaydetmeleri içerir.

Yeni Özellikler

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

    Uygulamalar arka planda çalışırken artık ön plan hizmeti başlatamaz. Bu nedenle, önceden bir ön plan hizmetinin yaşam döngüsüyle ilişkili olan uzun süreli işleri daha iyi desteklemek için uygulamalar WorkRequest'leri hızlandırılmış olarak işaretleyebilir.

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

    WorkManager, setExpedited(...) kullanılırken Android 12'den itibaren JobScheduler ürününde hızlandırılmış işlere yetki verir ve ö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 için destek ekleyin.

Sürüm 2.6.0

Sürüm 2.6.0

1 Eylül 2021

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

2.5.0'dan bu yana önemli değişiklikler

  • WorkManager, WorkManager'ı başlatmak için artık androidx.startup kullanıyor. Geçmişte WorkManager'ı başlatmak için tools:node="remove" ContentProvider kullandıysanız aşağıdaki işlemleri gerçekleştirmeniz 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 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 kaydetmeleri içerir.

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

Sürüm 2.6.0-beta02

21 Temmuz 2021

androidx.work:work-*:2.6.0-beta02 yayınlandı. Sürüm 2.6.0-beta02 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • RemoteWorkManager artık RemoteWorkManagerService ile olan bağlantıyı doğru şekilde kesiyor. Bu sayede RemoteWorkManagerService düzgün şekilde temizleniyor. aosp/1730694
  • RemoteListenableWorker artık RemoteWorkerService ile olan bağlantıyı doğru şekilde kesiyor. Bu sayede RemoteWorkerService düzgün şekilde temizleniyor. aosp/1743817
  • ForceStopRunnable artık yalnızca birincil uygulama işleminde çalışıyor. Bu bir optimizasyondur ve 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ı. Sürüm 2.6.0-beta01 bu kaydetmeleri içerir.

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

Sürüm 2.6.0-alpha02

21 Nisan 2021

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

Yeni Özellikler

  • Çalışanlar için herhangi bir 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 öğelerinin 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 kaydetmeleri içerir.

Yeni Özellikler

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

    İlk kullanıma hazırlamak için kullanılan ContentProvider tools:node="remove" kullandıysanız yoksa aşağıdaki işlemleri gerçekleştirmeniz 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 bir 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ı. 2.5.0 sürümü bu kaydetmeleri içerir.

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

  • Birden fazla işlem kullanan uygulamalar için yeni bir :work:work-multiprocess yapısı. Bu sayede iş isteği planlamasının tek bir işlemde birleştirilmesiyle performans kazanımları elde edilebilir.
    • work-multiprocess özelliğini kullanmak için şuna bağımlı bir bağımlılık tanımlayın: implementation "androidx.work:work-multiprocess:2.5.0"
    • Configuration.Builder.setDefaultProcessName(String) yöntemini kullanarak birincil işlem atayın.
    • work-multiprocess hizmetini kullanırken, WorkRequest öğelerinizi yönetmek için RemoteWorkManager'ı da kullanmak istersiniz. RemoteWorkManager, her zaman belirlenen sürece ulaşır. İşlem içi planlayıcı da belirlenen süreçte çalışır.
  • Bazen ActivityManager, bir iş başlatmak için JobService örneğini örnekleyemez. Bu durum, temel işin platform hatası nedeniyle sessizce bırakılmasına neden olur. WorkManager, işlerin mutabakatı tarafından Application başlatılırken artık her WorkRequest için yedek iş olmasını sağlıyor. Bu da iş yürütme güvenilirliğini büyük ölçüde artırır. (b/172475041, aosp/1489577)
  • WorkManager, WorkRequest tamamlandıktan sonra WorkRequest öğelerinin izlediği arabellek süresini azaltarak veritabanı büyümesini sınırlar. Süre 7 gün önceydi. 1 güne ve keepResultsForAtLeast süresine düşürüldü. (aosp/1419708)
  • TestListenableWorkerBuilder, testi kolaylaştırmak için artık ListenableWorker uzatan yenidenleştirilmiş 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ı. Sürüm 2.5.0-rc01 bu kaydetmeleri 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 yol açmaktadır. (aosp/1535368, b/175944460)
  • Ölü bir işlemin bağlantısını kaldırmaya çalışırken NoSuchElementException'lerin yoksayılmasına neden olan bir hata düzeltildi. (aosp/1530589)
  • Yalnızca durdurulmamışsa ListenableWorker işlevini durdurmak için ConstraintTrackingWorker uygulamasını iyileştirin. (aosp/1496844, b/172946965)
  • androidx.work kitaplıklarını, Java 8'i (Ibd2f2) hedefleyecek şekilde güncelleyin

Sürüm 2.5.0-beta02

2 Aralık 2020

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

Hata Düzeltmeleri

  • androidx.work:work-multiprocess aracında, belirlenen işleme bağlanmaya çalışırken WorkManager'ın çağrı iş parçacığını yanlışlıkla engellemesine neden olan hata düzeltildi. (aosp/1475538)
  • PeriodicWorkRequest öğelerinin doğru bir şekilde mutabakata varmamasına neden olan hata düzeltildi. (b/172475041, aosp/1489577)
  • setForeground* API'leri kullanılırken ön plan hizmeti durdurulurken karşılaşılan 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ı. Sürüm 2.5.0-beta01 bu kaydetmeleri içerir.

Yeni Özellikler

  • WorkManager, işlemdeki planlayıcı tarafından toplanabilecek WorkRequest sayısını otomatik olarak kısar. İstekler yine FIFO sırasına göre yürütülür. (aosp/1455228)
  • WorkManager, uygulamanın veri deposu hatalı bir durumda olduğunda kurtarmaya çalışır. (aosp/1463103)

Hata Düzeltmeleri

  • ListenableWorker öğeleri kesintiye uğradığında 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ı. Sürüm 2.5.0-alpha03 bu kaydetmeleri 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 işlevini 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üren 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 kaydetmeleri içerir.

Yeni Özellikler

  • WorkInfo öğelerini sorgulamak için id öğelerini kullanabilmek için WorkQuery'ye API ekleyin. (aosp/1412372, b/157335295)
  • WorkManager, yeni bir yapıyla (androidx.work:work-multiprocess:*) birden fazla işlem kullanan uygulamaları daha iyi destekler. Bu yeni yapı, büyük uygulamaların karşılaştığı birkaç sorunun çözülmesine yardımcı olur:
    • Genellikle her uygulama işleminde WorkManager'ın başlatılması gerekir. Bu çok iyi bir durum değildir çünkü SQLite çekişmesi başka sorunlara yol açar. WorkManager'da artık Configuration#setDefaultProcessName(processName) ile birincil uygulama işlemi atamak için kullanılabilecek yeni API'ler yer alıyor. processName, packageName:processName şeklinde görünen (ör. com.example:remote) tam nitelikli bir işlem adıdır.
    • Bir dizi yeni API: RemoteWorkManager ve RemoteWorkContinuation ile enqueue, cancel ve query iş istekleri. Bu API'ler, birden fazla işlemde SQLite çakışmasını önlemek için LiveData varyantlarını içermez. enqueue, cancel ve query için yapılan tüm çağrılar AIDL kullanılarak primary uygulama işlemine yönlendiriliyor ve akıcı bir şekilde ListenableFuture. (aosp/1392657, aosp/1411210 aosp/1412215 aosp/1417713)

API Değişiklikleri

  • WorkManager, artık eksik bağımlılığı olmayan tamamlanmış WorkRequest'leri daha agresif bir şekilde ayıklayor. 7 gün olan arabellek süresi 1 gün olarak değiştirildi. (aosp/1419708)

Hata Düzeltmeleri

  • WorkManager, artık işlerin proaktif bir şekilde mutabık kalmasını sağlar. Böylece, WorkManager başlatıldığında WorkRequest ve JobScheduler işleri senkronize edilir. (aosp/1412794, b/166292069)

Sürüm 2.5.0-alpha01

19 Ağustos 2020

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

Yeni Özellikler

  • Dahili API'lerde yapılan ve gelecekte WorkManager ile daha iyi araçlar sunmamızı sağlayan değişiklikler. Diğer güncellemeler için bizi takip etmeye devam edin.

Hata Düzeltmeleri

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

Harici Katkı

  • Zac Sweers (github/43) tarafından sunulan ArrayCreatingInputMerger dokümanlarını 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 kaydetmeleri içerir.

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

  • WorkManager'ın işlemdeki planlayıcısı artık daha yetenekli. Daha önce, süreçteki Scheduler yalnızca gecikmeli olmayan ve kısıtlamalarına uyan işleri yürütmeyi dikkate alıyordu. Artık işlemdeki planlayıcı, PeriodicWorkRequests de dahil olmak üzere ileride yürütülebilecek WorkRequest'leri izliyor. İşlemdeki Scheduler, planlama sınırlarını da dikkate almaz (ancak WorkManager tarafından kullanılan Executor boyutuyla sınırlı olmaya devam eder). Bu durum, uygulama ön plandayken artık çok daha fazla WorkRequest gerçekleştirebileceği anlamına gelir. Geciken çalışmanın ön planda yürütülmesini yönetmek için WorkManager, yapılandırılabilir yeni bir RunnableScheduler özelliğini de kullanıma sundu. (aosp/1185778)
  • WorkManager artık RxJava 3'ü destekliyor. RxJava 3 kullanmak için şu bağımlılığı eklemeniz gerekir: implementation "androidx.work:work-rxjava3:2.4.0". (aosp/1277904)
  • WorkQuery kullanılarak WorkInfo öğeleri için sorgulama yapma özelliği eklendi. Bu, geliştiriciler WorkInfo öğelerini birden fazla özelliğin kombinasyonuyla sorgulamak istediklerinde yararlı olur. Daha fazla bilgi için WorkQuery.Builder.fromStates(...), WorkQuery.Builder. fromTags(...) veya WorkQuery.Builder.fromUniqueWorkNames(...) sayfalarına göz atın. (aosp/1253230, b/143847546)
  • Aşağıdakileri kullanarak WorkManager adlı cihazdan teşhis bilgisi isteme özelliğini ekleyin:

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

    Bu bilgiler, aşağıdakiler dahil birçok yararlı bilgi sunar:

    • Son 24 saat içinde tamamlanan İş İstekleri.
    • Şu anda RUNNING (ÇALIŞIYOR) olan WorkRequests (İş İstekleri).
    • Planlanmış Çalışma İstekleri. (aosp/1235501)
  • APPEND ile benzer olan ancak iptal edilen veya ön koşulları yerine getirilmeyen bir zincirin yerini alan ExistingWorkPolicy.APPEND_OR_REPLACE ekleyin. (b/134613984, aosp/1199640)

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

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

  • BATTERY_NOT_LOW kısıtlamalarının izlenmesini platformla daha uyumlu hale getirin. (aosp/1312583)

  • İşlem içi planlayıcı, işlemin adını belirlemek için artık daha iyi API'ler kullanmaktadır. Bu özellik, birden fazla işlem kullanan uygulamaların daha iyi desteklenmesi için faydalıdır. (aosp/1324732)

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

    • setForegroundAsync() API'lerini kullanırken doğru foregroundServiceType kullanımı. (b/147873061, aosp/1215915)
    • Doğrudan JobService API'lerini kullanırken WorkManager'ın kullanması gereken JobScheduler kimliklerini belirtme. aosp/1223567
    • Varsayılan WorkerFactory kullanılırken ListenableWorkeruygulamaların artık public olmasını sağlayan yeni bir lint kuralı eklendi. (aosp/1291262)
  • ListenableWorker tamamlanmadan setForegroundAsync() numaralı telefona yapılan aramaların sinyali, artık döndürülen ListenableFuture üzerinde IllegalStateException ile gösterilecek. (aosp/1262743)

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

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

Sürüm 2.4.0-rc01

24 Haziran 2020

androidx.work:work-*:2.4.0-rc01 yayınlandı. Sürüm 2.4.0-rc01 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • İşlem içi planlayıcı, işlemin adını belirlemek için artık daha iyi API'ler kullanmaktadır. Bu özellik, birden fazla işlem kullanan uygulamaların daha iyi desteklenmesi için faydalı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 serbest bırakıldı. Sürüm 2.4.0-beta01 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Worker ön planı kesintiye uğratıldıktan sonra ForegroundService öğesinin durdurulmamasına neden olan hata düzeltildi. (b/155579898, aosp/1302153)
  • WorkManager ürününün bir Ön Plan Hizmeti'ne bağlı Worker öğesinin birden fazla örneğini yürütmeye çalıştığı hata düzeltildi (b/156310133, aosp/1309853)
  • DelegatingWorkerFactory kullanılırken yetki verilecek fabrikaları dinamik olarak ekleme desteği ekleyin. (b/156289105, aosp/1309745)
  • BATTERY_NOT_LOW kısıtlamalarının izlenmesini 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 kaydetmeleri içerir.

Yeni Özellikler

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

API Değişiklikleri

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

Hata Düzeltmeleri

Sürüm 2.4.0-alpha02

1 Nisan 2020

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

Yeni Özellikler

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

API Değişiklikleri

  • WorkQuery kullanılarak WorkInfo öğeleri için sorgulama yapma özelliği eklendi. Bu, geliştiriciler WorkInfo öğelerini birden fazla özelliğin kombinasyonuyla sorgulamak istediklerinde yararlı olur. Daha fazla bilgi için WorkQuery.Builder withStates(...), WorkQuery.Builder withTags(...) veya WorkQuery.Builder withUniqueWorkNames(...) sayfalarına göz atın. (aosp/1253230, b/143847546)

  • ListenableWorker tamamlanmadan setForegroundAsync() numaralı telefona yapılan aramaların sinyali, artık döndürülen ListenableFuture üzerinde IllegalStateException ile gösterilecek. (aosp/1262743)

Hata Düzeltmeleri

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

Sürüm 2.4.0-alpha01

4 Mart 2020

androidx.work:work-*:2.4.0-alpha01 yayınlandı. Sürüm 2.4.0-alpha01 bu kaydetmeleri içerir.

Yeni Özellikler

  • WorkManager'ın işlemdeki planlayıcısı artık daha yetenekli. Daha önce, süreç içindeki Planlayıcı, yalnızca gecikmiş olmayan ve kısıtlamalarına uyan işleri yürütmeyi düşünüyordu. Artık işlemdeki planlayıcı, PeriodicWorkRequest dahil olmak üzere gelecekte yürütülebilecek WorkRequest'leri izliyor. İşlemdeki Scheduler, planlama sınırlarını da Gözlemlemez (ancak WorkManager tarafından kullanılan Executor boyutuyla kısıtlıdır). Bu da uygulama ön plandayken artık çok daha fazla WorkRequest çalıştırılabileceği anlamına geliyor. (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 bilgiler, aşağıdakiler dahil birçok yararlı bilgi sunar:

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

    • setForegroundAsync() API'lerini kullanırken doğru foregroundServiceType kullanımı. (b/147873061, aosp/1215915)
    • JobService API'lerini doğrudan kullanırken WorkManager tarafından kullanılması gereken JobScheduler kimlikleri belirtiliyor. (aosp/1223567)

API Değişiklikleri

  • APPEND ile benzer bir ExistingWorkPolicy.APPEND_OR_REPLACE ekleyin. Ancak, ön koşulları iptal eden veya ön koşullarını yerine getirmiş olan bir zincirin yerine geçin. (b/134613984, aosp/1199640)

  • Gelecekte yürütülmesi gereken WorkRequest'leri izlemek için özel RunnableScheduler ekleme olanağı sağlayın. 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 setProgress() RxWorker içinde kullanımdan kaldırıldı. Bunun yerine Completable döndüren yeni bir API setCompletableProgress() 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ı. Sürüm 2.3.4 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • 10 dakikalık yürütme süresi aşıldıktan sonra, uzun çalışan Worker örneklerinin birden fazla örneğin çalıştırılmasına neden olan hata düzeltildi. (aosp/1247484, b/150553353)
  • WorkManager'ın lint (IssueRegistry) sorunu için düzeltme. Katkıları için Slack'ten @ZacSweers 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ı. Sürüm 2.3.3 bu kaydetmeleri içerir.

Hata Düzeltmeleri

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

Sürüm 2.3.2

Sürüm 2.3.2

19 Şubat 2020

androidx.work:work-*:2.3.2 serbest bırakıldı. Sürüm 2.3.2 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • WorkManager'ın, Nadir durumlarda JobScheduler'daki 100 iş sınırını aşmasına neden olan sorunu düzeltir. (aosp/1226859, b/149092520)
  • ConstraintControllers'da yarış durumu için düzeltme (aosp/1220100)
  • Uzun süreli çalışanlar için yönetim ön planı hizmet yaşam döngüsü iyileştirildi. (aosp/1226295)
  • Çalışan iptalinin ardından uzun süre çalışan Çalışanlar için 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 kaydetmeleri içerir.

Hata düzeltmeleri

  • Bir ön plan Service etkin olduğunda çalışan uzun süreli Worker'ler için Notification'lerin yaşam döngüsünü daha iyi yönetin. (aosp/1218539, b/147249312)
  • WorkManager artık androidx.sqlite:sqlite-framework:2.1.0 kararlı sürümü kullanıyor. (aosp/1217729)
  • ForegroundInfo içindeki foregroundServiceType öğeleri kullanılırken AndroidManifest.xml içinde foregroundServiceType belirtildiğinden emin olmak 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 hiçbir değişiklik yapılmadan yayınlandı. 2.3.0 sürümü bu kaydetmeleri içerir.

2.2.0'dan bu yana önemli değişiklikler

  • ListenableWorker#setForegroundAsync() aracılığıyla uzun süreli veya önemli çalışmalar için destek.
  • ListenableWorker#setProgressAsync() üzerinden Çalışan İlerlemesi Desteği.
  • WorkManager, artık hataların erken yakalanmasına yardımcı olmak için kitaplığın bir parçası olarak ek lint kurallarını kullanıma sunuyor.

Sürüm 2.3.0-rc01

8 Ocak 2020

androidx.work:work-*:2.3.0-rc01 yayınlandı. Sürüm 2.3.0-rc01 bu kaydetmeleri içerir.

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

Hata düzeltmeleri

  • work-testing yapısı artık work-runtime-ktx öğesine bir api bağımlılığı tanımlamaktadır. (aosp/1194410)

Sürüm 2.3.0-beta02

18 Aralık 2019

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

API değişiklikleri

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

Hata düzeltmeleri

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

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

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

Sürüm 2.3.0-beta01

20 Kasım 2019

androidx.work:work-*:2.3.0-beta01 yayınlandı. Sürüm 2.3.0-beta01 bu kaydetmeleri 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 lint kuralı eklendi. aosp/1164559

Sürüm 2.3.0-alpha03

23 Ekim 2019

androidx.work:work-*:2.3.0-alpha03 yayınlandı. 2.3.0-alpha03 sürümü bu kaydetmeleri içerir.

Yeni özellikler

  • AndroidManifest.xml içinde başka bir bileşen kaydettirmek zorunda kalmadan WorkRequest öğelerini iptal etmeyi kolaylaştıran WorkManager.createCancelPendingIntent() API'si eklendi. Bu API, özellikle Notification kapsamındaki WorkRequest öğelerini iptal etmeyi kolaylaştırır. Bunun 2.3.0'da yeni ön plan API'leriyle eşleştirilmesini bekliyoruz.
  • WorkManager artık androidx.room:*:2.2.0 adlı ürünün kararlılığını kullanıyor.

API değişiklikleri

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

Hata düzeltmeleri

  • İşlem dışında gereksiz setTransactionSuccessful() çağrısından kaynaklanan hata düzeltildi. Bu durum nadiren yapılan taşıma işlemlerinde ortaya çıkar. (b/142580433, aosp/1141737)

Sürüm 2.3.0-alpha02

9 Ekim 2019

androidx.work:work-*:2.3.0-alpha02 yayınlandı. 2.3.0-alpha02 sürümü bu kaydetmeleri içerir.

Yeni özellikler

  • WorkManager, artık işletim sistemi tarafından aktif tutulması gereken uzun süreli veya önemli çalışmaları destekliyor. Daha fazla bilgi için şuraya bakın: ListenableWorker#setForegroundAsync() (veya Kotlin için CoroutineWorker#setForeground()). (aosp/1133636)

API değişiklikleri

  • Data alan adı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

  • WorkManager, sıraya alınan WorkRequest sayısı planlama sınırlarına yaklaştığında adil bir şekilde çalışır. (aosp/1105766)
  • WorkManager, yalnızca çalışma tamamlanmamışsa ListenableWorker#onStopped() öğesini çağırır. (b/140055777)
  • WorkManager, artık bir çalışan kesintiye uğradığında veya terminal durumuna ulaştığında ilerleme bilgilerini kaldırıyor. (aosp/1114572)
  • Data artık çok daha yararlı bir toString()temsil ediyor. (b/140945323)
  • Data artık daha iyi bir equals() yöntemine sahip. Ayrıca Array türleri için deepEquals desteklenir. (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 kaydetmelere buradan ulaşabilirsiniz.

Yeni özellikler

  • ListenableWorker kullanıcıları artık setProgressAsync() API'si aracılığıyla ilerleme durumunu ayarlayabilir. Ayrıca, CoroutineWorker içinde karşılık gelen suspend-ing setProgress API'si ve RxWorker için Single<Void> döndüren bir setProgress API'si de eklendi. Çalışanlar bu yeni API'lerle ilerleme bilgilerini, karşılık gelen bir getProgress API'si olan WorkInfo üzerinden iletebilir. (b/79481554)
  • Data, Worker ile ilişkili giriş verilerinin beklenen türde anahtarlara sahip olduğunu doğrulamak için kullanılabilen bir containsKey() API'sine 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, kullanmaya devam etmemeniz veya uygulamalar arasında IPC için kullanmamanız gerektiğini unutmayın. Yalnızca aynı uygulamanın birden çok işlemi arasında güvenle kullanılabilir.
  • Configuration.setInputMergerFactory aracılığıyla InputMergerFactory belirtme özelliği eklendi. (b/133273159)

API değişiklikleri

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

Hata düzeltmeleri

  • İşlemdeki Scheduler artık idle kısıtlamasına sahip WorkRequest'leri yoksayar. Bu istekler artık yalnızca cihaz aslında idle olduğunda JobScheduler tarafından alınıyor. (aosp/1089779)
  • TestScheduler, testlerde dahili görev yürütücü için belirtilen Executor değerini artık doğru bir ş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 kaydetmelere buradan ulaşabilirsiniz.

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

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

androidx.work:work-gcm:2.2.0, 22'den küçük API düzeyleri için Google Play Hizmetleri kullanılabilir olduğunda GCMNetworkManager'ın planlayıcı olarak kullanımını destekleyen yeni bir Maven yapısıdır. Bu, eski API sürümlerinde daha güvenilir ve performanslı arka plan işlemeye yardımcı olan isteğe bağlı bir bağımlılıktır. Uygulamanız Google Play Hizmetleri'ni kullanıyorsa otomatik olarak GCMNetworkManager desteği 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 kaydetmelere buradan ulaşabilirsiniz.

Hata düzeltmeleri

  • AlarmManager uygulamasında, Hizmet'in erken kapanmasına ve nadir durumlarda da RejectedExecutionException oluşması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 kaydetmelere buradan ulaşabilirsiniz.

Hata düzeltmeleri

  • 2.2.0-beta01 yılında kullanıma sunulan kasıtsız 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 kaydetmelere buradan ulaşabilirsiniz.

Yeni özellikler

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

Hata düzeltmeleri

  • Nvidia Shield K1 tabletlerde ağ durumu izlenirken IllegalArgumentException için düzeltme yapılıyor. (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 önemli değişiklikler

  • work-runtime-ktx için artık Java 8 gerekiyor. Herhangi bir sorunla karşılaşırsanız build.gradle sayfanıza şunları ekleyebilirsiniz: kotlinOptions { jvmTarget = "1.8" }
  • WorkManager için, WorkManager'ı oluşturan isteğe bağlı başlatma eklendi yalnızca referans alındığında. b/127497100 Projenizi isteğe bağlı başlatmaya göre ayarlamak için:
    1. Otomatik başlatıcıyı devre dışı bırakın.
    2. Özel Application nesnenize Configuration.Provider uygulayın.
    3. Tüm WorkManager.getInstance() referanslarını şu şekilde değiştir: WorkManager.getInstance(Context). Bu değişiklik kapsamında WorkManager.getInstance() desteği sonlandırıldı. Yeni bir çağrıyı çağırmak her zaman daha güvenlidir WorkManager.getInstance(Context) değişim, şu anda yapmıyor olsanız bile isteğe bağlı başlatma.
  • PeriodicWorkRequest cihazları artık ilk gecikmeleri destekliyor. URL parametrelerinin Google tarafından nasıl ele alınmasını istediğinizi belirtmek için Başlangıç ayarlamak için PeriodicWorkRequest.Builder üzerinde setInitialDelay yöntemi b/111404867
  • Kayıtlı bir veya daha fazla WorkerFactory kullanıcısına yetki verme özelliği eklendi. DelegatingWorkerFactory. b/131435993
  • Şunlar için WorkManager tarafından kullanılan Executor'yi özelleştirme olanağı eklendi: tüm dahili defter tutma işlemlerini Configuration.Builder.setTaskExecutor aracılığıyla gerçekleştiriyor.
  • Test edilebilir Worker ve ListenableWorker birim oluşturma olanağı eklendi kullanarak TestWorkerBuilder ve TestListenableWorkerBuilder kullanarak work-testing yapı.
    • work-testing işlevinin artık bir bağımlılık olarak Kotlin'i çektiğini ve varsayılan olarak çeşitli Kotlin uzantılarını içerir.
  • Çalıştırma denemesi sayısı WorkInfo olarak eklendi. b/127290461
  • Data türleri artık baytları ve bayt dizilerini depolayıp alabilir. Bu ŞUNLARI YAPMAZ Data nesnenin maksimum boyutunu değiştirin.
  • WorkManager artık bazı veritabanı sorunlarını düzeltecek olan 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 kaydetmelere buradan ulaşabilirsiniz.

Hata düzeltmeleri

  • Yedekleme devam ederken JobScheduler ile işler yürütülürken 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 kaydetmelere buradan ulaşabilirsiniz.

Hata düzeltmeleri

  • TestListenableWorkerBuilder, ListenableWorker örneklerini oluştururken artık doğru WorkerFactory değerini kullanıyor. b/135275844
  • İşlemin ölümü nedeniyle WorkRequest saniyeler için yürütme aralıklarında kaymalara neden olan bir hata düzeltildi. b/135272196

Sürüm 2.1.0-beta01

13 Haziran 2019

androidx.work:work-*:2.1.0-beta01 yayınlandı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.

Hata düzeltmeleri

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

Sürüm 2.1.0-alpha03

5 Haziran 2019

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

Hata düzeltmeleri

  • PeriodicWorkRequest için dokümanlar iyileştirildi.
  • WorkManagerTestInitHelper artık testler için doğru arka plan yürütücüyü kullanıyor.
  • Bazı cihazlarda büyük işlemlerle çalışırken SQLite sorunları için düzeltmeler. (b/130182503)
  • WorkManager'ın bağımlılıkları artık daha ayrıntılı. (b/133169148).
  • WorkManager kullanarak iş planlarken JobScheduler uygulamasında ortaya çıkan OEM'e özgü hatalara geçici çözüm.
  • AlarmManager tabanlı planlayıcıda, daha önce nadir görülen kilitlenmelere neden olan hizmet ömürlerine göre yapılan 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çerir.

API Değişiklikleri

  • PeriodicWorkRequest cihazları artık ilk gecikmeleri destekliyor. URL parametrelerinin Google tarafından nasıl ele alınmasını istediğinizi belirtmek için Başlangıç ayarlamak için PeriodicWorkRequest.Builder üzerinde setInitialDelay yöntemi b/111404867

  • Kayıtlı bir veya daha fazla WorkerFactory kullanıcısına yetki verme özelliği eklendi. DelegatingWorkerFactory. b/131435993

  • Şunlar için WorkManager tarafından kullanılan Executor'yi özelleştirme olanağı eklendi: tüm dahili defter tutma işlemlerini Configuration.Builder.setTaskExecutor aracılığıyla gerçekleştiriyor.

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

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çerir. Bu sürümden itibaren, ileride sunulacak yeni özelliklerin 1.x sürümüne geri taşınmaz. 2.x sürümüne geçmenizi öneririz.

API Değişiklikleri

  • WorkManager için, WorkManager'ı oluşturan isteğe bağlı başlatma eklendi yalnızca referans alındığında. b/127497100 Projenizi isteğe bağlı başlatmaya göre ayarlamak için:
    1. Otomatik başlatıcıyı devre dışı bırakın.
    2. Özel Application nesnenize Configuration.Provider uygulayın.
    3. Tüm WorkManager.getInstance() referanslarını şu şekilde değiştir: WorkManager.getInstance(Context). Bu değişiklik kapsamında WorkManager.getInstance() desteği sonlandırıldı. Yeni bir çağrıyı çağırmak her zaman daha güvenlidir WorkManager.getInstance(Context) değişim, şu anda yapmıyor olsanız bile isteğe bağlı başlatma.
  • Test edilebilir Worker ve ListenableWorker birim oluşturma olanağı eklendi kullanarak TestWorkerBuilder ve TestListenableWorkerBuilder kullanarak work-testing yapı.
    • work-testing artık bir bağımlılık olarak Kotlin'i çeker, ancak aynı zamanda varsayılan olarak çeşitli Kotlin uzantılarını içerir.
  • Çalıştırma denemesi sayısı WorkInfo olarak eklendi. b/127290461
  • Data türleri artık baytları ve bayt dizilerini depolayıp alabilir. Bu ŞUNLARI YAPMAZ Data nesnenin maksimum boyutunu değiştirin.
  • CoroutineWorker.coroutineContext kullanımdan kaldırıldı. Bu alan yanlıştı CoroutineDispatcher olarak yazıldı; buna ihtiyacınız kalmaz, istediğiniz coroutineContext'i kendiniz askıya alma işlevinin gövdesine ekleyin.
  • RxWorker.createWork() ve RxWorker.getBackgroundScheduler() şimdi @NonNull dönüş türüyle belirtilir.

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 ile aynı 2.0.1-rc01.

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. Örneğin, kullanıyorsanız, bu değişikliklerden bazıları 1.0.1-rc01.

Hata Düzeltmeleri

  • Robolectric testleri artık WorkManager ile düzgün şekilde çalışıyor. b/122553577
  • iş ilanı öncesi API'leri nasıl kullanacağınızı öğreneceksiniz. b/129226383
  • Uzun iş zincirleriyle çalışan bir StackOverflowError düzeltildi. b/129091233
  • PeriodicWorkRequest sn. için dokümanlar, esnek sürenin API 23'te desteklenmiyor.
  • 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ığı olan 1.0.0 kararlı AndroidX sürümü. Önerilerimiz: eski 1.x sürümleri yerine bu sürümü hedefliyor. Etkin olanların tümü 2.x ve 1.x sürümünü hedefleyen bir geliştirme, yalnızca sınırlı bir süre için geçerli.

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ümle aynı ancak AndroidX bağımlılıkları var. Bu, 2.0.0 kararlı sürümüne ulaştığında yeni bir sürüm kullandığınızdan emin olun. Eski 1.x sürümleri, yalnızca hata düzeltmeleri. Tüm etkin geliştirmeler 2.x sürümünü hedefleyecektir.

AndroidX Öncesi Bağımlılıkları

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

Eski

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 ile aynı 1.0.1-rc01.

Kullanıcıların aşağıdaki nedenlerden dolayı WorkManager 2.x'e geçmelerini önemle tavsiye ettiğimizi lütfen unutmayın. İleride 1.x dalında çok az güncelleme olacaktır. Yeni API'ler 1.x kitaplığı için 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 şekilde çalışıyor. b/122553577
  • iş ilanı öncesi API'leri nasıl kullanacağınızı öğreneceksiniz. b/129226383
  • Uzun iş zincirleriyle çalışan 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çeriyor.

Hata Düzeltmeleri

  • Uygulama kilitlenmesinden sonra Worker işlemleri artık doğru bir şekilde planlandı. b/124546316

  • İşaretlenmemiş Exception gönderen Worker öğeleri artık doğru şekilde FAILED ve artık uygulama işlemi kilitlenmez.

Sürüm 1.0.0-rc01

14 Şubat 2019

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

Hata Düzeltmeleri

  • AlarmManager tabanlı uygulama artık flex penceresine doğru şekilde uyuyor PeriodicWorkRequests için de geçerli. b/124274584

Sürüm 1.0.0-beta05

6 Şubat 2019

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

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) çalıştıran cihazlarda bir NullPointerException düzeltildi veya daha düşük olmasını sağlayın. b/123835104

Sürüm 1.0.0-beta04

4 Şubat 2019

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

Hata Düzeltmeleri

  • AlarmManager tabanlı uygulama için PeriodicWork planlaması iyileştirildi.
  • WorkManager'ın aşağıdaki durumlarda kısıtlamaları doğru şekilde izleyememesine neden olan durum düzeltildi: yardımcı olur. b/123379508
  • WorkManager'ın, aşağıdaki durumlarda işlem ölümü üzerinde çalışmayı tekrar deneyememesine neden olan durum düzeltildi: yardımcı olur. b/123329850
  • AlarmManager tabanlı uygulama.

Sürüm 1.0.0-beta03

25 Ocak 2019

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

Hata Düzeltmeleri

  • Çalışmanın yürütülmemesine neden olan bir regresyonu 1.0.0-beta02 kullanıma sunduk bazı durumlarda doğru şekilde uygulayabilirsiniz. b/123211993
  • Çalışmanın geri çekilme zamanlamasını düzgün bir şekilde yerine getirmemesine neden olan durum düzeltildi. b/122881597
  • Android 5.1 (API) çalıştıran cihazlarda ConcurrentModificationException sorunu düzeltildi veya) ya da daha düşük olabilir. Bu, 1.0.0-beta02 çözümündeki düzeltmenin devamıdır. b/121345393
  • Manifest'imizde eksik olan bazı bileşenlere exported=false eklendi ekleyebilirsiniz.
  • WorkManager'ın OS ile nasıl etkileşimde bulunduğuna dair paket seviyesinde belgelere göz atın.

Sürüm 1.0.0-beta02

15 Ocak 2019

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

Hata Düzeltmeleri

  • Periyodik işlerin aralık başına birden fazla kez yürütülebileceği sıra dışı bir durum düzeltildi (API düzeyi 23) çalıştıran cihazlarda. b/121998363
  • Android 5.1 (API) çalıştıran cihazlarda ConcurrentModificationException sorunu düzeltildi 22. seviye) veya daha düşük bir düzeyde olduğunu varsayalım. b/121345393
  • Cihazlarda Kısıtlamalar karşılanmadığında işin yürütülmesinde hatalar düzeltildi Android 5.1 (API düzeyi 22) veya daha düşük bir sürümü çalıştıran. b/122578012
  • Bazı sıra dışı durumlarda daha hızlı olması için iş tamamlama işlemi optimize edildi. b/122358129
  • Birden fazla örnekteki olası yarış koşullarını ele almak için bir değişiklik eklendi ve WorkManager'ın kullandığı LiveData tanedir.
  • 1.1.1-rc01 yerine 1.1.1 Room bağımlılığı kullanılacak şekilde taşındı; bu sürümleri aynı. b/122578011

Sürüm 1.0.0-beta01

19 Aralık 2018

Bu sürümde API değişikliği bulunmuyor; bundan sonra, kritik bir sorun olmadığı sürece WorkManager'ın bir sonraki sürüme kadar API'de kararlı kalması beklenmektedir. Bu sürüm bazı hata düzeltmeleri içeriyor.

Hata Düzeltmeleri

  • Başarıyla tamamlanmış üst çalışmanın daha önce iptal edilen alt öğeleri artık çalıştırılmayacak. b/120811767
  • Uygun şekilde başlatılmış günlük kaydı sınıfları (öncelikle testler sırasında gösterilir).

Sürüm 1.0.0-alpha13

12 Aralık 2018

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

API Değişiklikleri

  • androidx.work.Result, ListenableWorker iç sınıfı olacak. Bu, Kotlin'in üst düzey Result sınıfıyla çakışmaların yeniden düzenlenmesini önler. Bu, API'de zarar veren bir değişikliktir. b/120564418

Çağlık API Değişiklikleri

  • androidx.work.Result, ListenableWorker iç sınıfı olacak.

Sürüm 1.0.0-alpha12

5 Aralık 2018

Bu sürümde zarar veren bazı API değişiklikleri var; lütfen aşağıdaki bozan API değişiklikleri bölümüne bakın. Bu sürüm büyük olasılıkla ilk beta sürümümüz olarak yayınlanacaktır. alpha12 ayrıca kapsamlı doküman güncellemeleri içeriyor.

API Değişiklikleri

  • Yeni bir yapı olan work-rxjava2, RxWorker ile tanışın. Bu, Single<Payload> beklenen bir ListenableWorker.
  • Firebase JobDispatcher desteği, yakında kullanımdan kaldırılacağı için kaldırılmıştır. Bu nedenle, work-firebase yapısının artık beta sürümüne geçilmeye başlanmayacağı anlamına gelir. Gelecekte bir alternatif eklemeyi planlıyoruz.
  • Payload, Result olarak birleştirildi. Result artık "mühürlü sınıf" Result.success() (veya Result.success(Data)), Result.failure() (ya da Result.failure(Data)) ve Result.retry() yoluyla elde edebileceğiniz üç somut uygulamayla birlikte. ListenableFuture'leriniz artık Payload yerine Result ile sonuçlanıyor. Worker öğeleri, Data çıkışı için alıcı ve belirleyici yöntemlerine sahip değil. Bu, zarar veren bir değişikliktir.
  • Yavaş tetiklenen içerik URI'lerini daha iyi desteklemek için Constraints.Builder.setTriggerContentMaxDelay(long, TimeUnit) ve Constraints.Builder.setTriggerContentUpdateDelay(long, TimeUnit) ile varyantlar eklendi. b/119919774
  • WorkRequest.Builder.setBackoffCriteria(BackoffPolicy, Duration) varyant eklendi. Bu yöntem API 26 gerektirir.
  • Operation.await() ve ListenableFuture.await() Kotlin uzantı yöntemleri eklendi.
  • Operation.getException() adlı dosya Operation.getThrowable() olarak yeniden adlandırıldı. Bu, zarar veren bir değişikliktir.
  • ContentUriTriggers sınıfı ve buna referans veren yöntemler artık herkese açık olarak kullanılamaz. Bu, zarar veren bir değişikliktir.
  • API'yi kolaylaştırmak için WorkManager, WorkContinuation ve OneTimeWorkRequest kapsamındaki diğer varargs yöntemleri kaldırıldı. Derleme sorunlarını düzeltmek için mevcut değişkenlerinizi Arrays.asList(...) ile sarmalayabilirsiniz. Yine de her yöntemin tek bağımsız değişkenli sürümlerini dahil ederiz. Bu, zarar veren bir değişikliktir.
  • WorkContinuation.combine(OneTimeWorkRequest, *) varyant kaldırıldı. Kafa karıştırıcı bir API sunuyorlardı; mevcut combine yöntemleri daha anlaşılırdır. Bu, zarar veren bir değişikliktir.

Hata Düzeltmeleri

  • Marshmallow öncesi uygulamalar, devam etmekte olan bir görevin işlem ölümünden kurtarmada artık daha güvenilirdir.
  • observeForever aracılığıyla gözlemlenen LiveData, WorkManager aracılığıyla izlenir. Bu, Oda kitaplığı düzeltmesinin geri bağlantı noktasıdır. b/74477406
  • Serileştirilmiş nesne maksimum boyutunu aşarsa Data.Builder.build() artık bir istisna yayınlıyor. Bu durum daha önce yalnızca düzgün bir şekilde işleyemediğiniz arka plan ileti dizilerinde gerçekleşiyordu.
  • Durdurulan ve iptal edilen çalışmaların daha farklı şekilde tespit edilmesi; getWorkInfoById(), ListenableWorker.onStopped() sırasında CANCELLED State ile WorkInfo döndürecek.
  • null Result öğelerini ListenableWorker öğesinde başarısız olarak değerlendir. b/120362353
  • Bazen IllegalArgumentException hatası veren Shield 24 çalıştıran Shield Tabletler için spekülatif düzeltme. b/119484416

Çağlık API Değişiklikleri

  • Firebase JobDispatcher desteği, yakında kullanımdan kaldırılacağı için kaldırılmıştır. Bu nedenle, work-firebase yapısının artık beta sürümüne geçilmeye başlanmayacağı anlamına gelir. Gelecekte bir alternatif eklemeyi planlıyoruz.
  • Payload, Result olarak birleştirildi. Result artık "mühürlü sınıf" Result.success() (veya Result.success(Data)), Result.failure() (ya da Result.failure(Data)) ve Result.retry() yoluyla elde edebileceğiniz üç somut uygulamayla birlikte. ListenableFuture'leriniz artık Payload yerine Result ile sonuçlanıyor. Worker öğeleri, Data çıkışı için alıcı ve belirleyici yöntemlerine sahip değil.
  • Operation.await() ve ListenableFuture.await() Kotlin uzantı yöntemleri eklendi.
  • Operation.getException() adlı dosya Operation.getThrowable() olarak yeniden adlandırıldı.
  • ContentUriTriggers sınıfı ve buna referans veren yöntemler artık herkese açık olarak kullanılamaz.
  • API'yi kolaylaştırmak için WorkManager, WorkContinuation ve OneTimeWorkRequest kapsamındaki diğer varargs yöntemleri kaldırıldı. Derleme sorunlarını düzeltmek için mevcut değişkenlerinizi Arrays.asList(...) ile sarmalayabilirsiniz. Yine de her yöntemin tek bağımsız değişkenli sürümlerini dahil ederiz.
  • WorkContinuation.combine(OneTimeWorkRequest, *) varyant kaldırıldı. Kafa karıştırıcı bir API sunuyorlardı; mevcut combine yöntemleri daha anlaşılırdır.

Sürüm 1.0.0-alpha11

8 Kasım 2018

Bu sürüm, beta itibarıyla kararlı API'ye dönüşecek birçok değişiklik içeriyor. Bu sürümde zarar veren API değişiklikleri var; lütfen aşağıdaki bozan 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ı. İlgili tüm getStatus yöntem varyantları ilgili getWorkInfo varyantı. Bu, zarar veren bir değişikliktir.
  • ListenableWorker.onStopped(), WorkRequest işlevinin iptal edilip edilmediğini temsil eden bir boole bağımsız değişkenini artık kabul etmiyor. WorkManager artık bu ayrımı yapmıyor. Bu, zarar veren bir değişikliktir.
  • androidx.work.test paketi, androidx.work.testing paketi olarak yeniden adlandırıldı. Bu, zarar veren bir değişikliktir.
  • Constraints üzerindeki setler, artık herkese açık API'nin bir parçası değil. Bu, zarar veren bir değişikliktir.
  • WorkerParameters.getTriggeredContentUris() ve WorkerParameters.getTriggeredContentAuthorities() daha önce dizi döndürdü. Artık bu yöntemler Koleksiyonları döndürüyor. Bu, zarar veren bir değişikliktir.
  • ListenableWorker.onStartWork(), ListenableWorker.startWork() olarak yeniden adlandırıldı. Bu, zarar veren bir değişikliktir.
  • WorkStatus oluşturucusu artık herkese açık API'nin bir parçası değil. Bu, zarar veren bir değişikliktir.
  • Configuration.getMaxJobSchedulerID() ve Configuration.getMinJobSchedulerID(), Configuration.getMinJobSchedulerId() olarak yeniden adlandırıldı ve Configuration.getMaxJobSchedulerId(). Bu, zarar veren bir değişikliktir.
  • 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 almak için WorkManager.enqueueUniqueWork() API'si ekleyin.
  • WorkManager üzerindeki tüm enqueue ve cancel yöntemlerinin varyantları artık yeni bir Operation türü döndürüyor. Bu, zarar veren bir değişikliktir.
  • enqueue öğesinin hiçbir varyantı, WorkRequest için artık değişken kabul etmiyor. Bu, zarar veren bir değişikliktir. Bunun yerine Koleksiyonları kullanın. Mevcut kodu değiştirmek için Arrays.asList() uzantısını kullanabilirsiniz. Bu uygulamayla, API yüzeyini ve yöntem sayısını azalttık.
  • İşlem başına birden çok kez WorkManager initialize girişiminde bulunmak artık IllegalStateException ile sonuçlanır. Bu, zarar veren bir değişikliktir.

Hata Düzeltmeleri

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

Çağlık API Değişiklikleri

  • WorkStatus, WorkInfo olarak yeniden adlandırıldı. İlgili tüm getStatus yöntem varyantları ilgili getWorkInfo varyantı.
  • ListenableWorker.onStopped(), WorkRequest işlevinin iptal edilip edilmediğini temsil eden bir boole bağımsız değişkenini artık kabul etmiyor. WorkManager artık bu ayrımı yapmıyor.
  • androidx.work.test paketi, androidx.work.testing paketi olarak yeniden adlandırıldı.
  • Constraints üzerindeki setler, 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üyor.
  • ListenableWorker.onStartWork(), ListenableWorker.startWork() olarak yeniden adlandırıldı.
  • WorkStatus oluşturucusu artık herkese açık API'nin bir parçası değil.
  • Configuration.getMaxJobSchedulerID() ve Configuration.getMinJobSchedulerID(), Configuration.getMinJobSchedulerId() olarak yeniden adlandırıldı ve Configuration.getMaxJobSchedulerId().
  • WorkManager üzerindeki tüm enqueue ve cancel yöntemlerinin varyantları artık yeni bir Operation türü döndürüyor.
  • enqueue öğesinin hiçbir varyantı, WorkRequest için artık değişken kabul etmiyor.
  • İşlem başına birden çok kez WorkManager initialize girişiminde bulunmak artık IllegalStateException ile sonuçlanır.

Sürüm 1.0.0-alpha10

11 Ekim 2018

Bu sürüm, geliştirici tarafından kontrol edilen eşzamansız çalışmayı destekler. Bu sürümde zarar veren API değişiklikleri var; lütfen aşağıdaki bozan API değişiklikleri bölümüne bakın.

WorkManager'ın alfa döneminin son aşamalarına geçtiğini tahmin ediyoruz. Beta sürümde API'lerin kararlı çalışmasını bekliyoruz. Bu nedenle, sorun izleyicimiz hakkında geri bildirimde bulunmak için lütfen biraz zaman ayırın.

API Değişiklikleri

  • Daha önce deprecated yöntemlerinin ve sınıflarının tümü, özellikle de varsayılan Worker oluşturucusu kaldırıldı. Bu, API'de zarar veren bir değişikliktir.
  • NonBlockingWorker, artık gösterilmemiş, herkese açık ve kullanıma hazır bir sınıf olan ListenableWorker olarak yeniden adlandırıldı.
    • ListenableWorker, ana iş parçacığında çağrılan ListenableFuture<Payload> onStartWork() adlı tek soyut yönteme erişim sağlar. İşleri eşzamansız olarak başlatmak ve işlemek size bağlıdır. İşlemi tamamladığınızda ListenableFuture uygun şekilde güncellemeniz gerekir. ListenableFuture referans uygulamaları, alpha02 uygulamasındaki Futures paketinde sağlanmıştır (WorkManager bölümünün altına bakın).
    • Worker, ListenableWorker öğesini genişletir ve soyut bir Result doWork() yöntemiyle önceki gibi çalışmaya devam eder.
    • Worker öğesinden bazı yöntemler ve üyeler ListenableWorker olarak karıştırıldı.
    • Yakında, Kotlin eş yordamları (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 uygulaması, WorkerFactory adlı soyut bir sınıfta birleştirildi. Uygulama, varsayılan yansıtmaya dayalı davranışın, kullanıcı tarafından oluşturulan WorkerFactory örnekleri için son adım olarak değerlendirilmesini sağlar. Bu, zarar veren bir değişikliktir.
  • WorkManager.synchronous(), WorkContinuation.synchronous() ve ilgili tüm yöntemler kaldırıldı. API'deki birçok yöntemin dönüş türü olarak ListenableFuture<Void> eklendi. Bu, API'de zarar veren bir değişikliktir.
    • Artık ListenableFuture öğelerini kullanarak eşzamanlı olarak alabilir ve gözlemleyebilirsiniz. Örneğin, WorkManager.enqueue(), void değerini döndürmek için kullanılır; şimdi bir ListenableFuture<Void> döndürüyor. İşlem tamamlandığında kodu çalıştırmak için ListenableFuture.addListener(Runnable, Executor) veya ListenableFuture.get() yöntemini çağırabilirsiniz.
    • Bu ListenableFuture'ların işlemin başarılı mı yoksa başarısız mı olduğunu söylemediğini unutmayın; geri bildirim verir. Bu bilgileri bulmak için yine de WorkManager yöntemleri kullanmanız gerekir.
    • Kafa karıştırıcı ve akıl yürütmeleri zor olduğundan (işlemi mi yoksa sonuç olarak yapılacak işi mi iptal ediyorsunuz?) nedeniyle bu nesnelerle ilgili cancel() çağrılarını yoksayıyoruz. Bu, Future sözleşmesi kapsamındadır.
    • Eşzamanlı getStatus* yöntemleriyle denkliği korumak için ListenableFuture varyant sağladık ve LiveData döndüren mevcut varyantları açık bir şekilde "LiveData" içerecek şekilde yeniden adlandırdık olarak da adlandırılır (örneğin, getStatusesByIdLiveData(UUID)). Bu, API'de zarar veren bir değişikliktir.

Hata Düzeltmeleri

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

Çağlık API Değişiklikleri

  • Daha önce deprecated yöntemlerinin ve sınıflarının tümü, özellikle de varsayılan Worker oluşturucusu kaldırıldı.
  • WorkerFactory arayüzü ve DefaultWorkerFactory somut uygulaması, WorkerFactory adlı soyut bir sınıfta birleştirildi.
  • WorkManager.synchronous() ve WorkContinuation.synchronous() kaldırıldı.
  • WorkManager.getStatus*() yöntemleri artık ListenableFuture değeri 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' yolunu kullanarak birden fazla dosya bulundu", alpha10 sürümünde bu sorunu geçici olarak düzeltirken lütfen aşağıdakini geçici bir çözüm olarak gradle dosyanıza yerleştirin:

Eski

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

Kotlin

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

Hata Düzeltmeleri

  • "100 iş" için gereken başka bir düzeltme eklendi hatası. b/115560696
  • Yarış koşullarından kaynaklanan yabancı anahtar kısıtlaması hataları için bazı düzeltmeler eklendi. b/114705286
  • Temel Worker öğesine yetki verilmiş ConstraintTrackingWorker.onStopped(boolean) çağrıları. b/114125093
  • Firebase JobDispatcher için doğru minimum geri yükleme gecikmesini zorunlu kılın. b/113304626
  • Geliştirilmiş iş parçacığı oluşturma garantisi kitaplık içi garantiler sağlar.
  • Dahili olarak LiveData tekilleştirilmesiyle ilgili olası sorunu düzeltin.

API Değişiklikleri

  • Artık WorkManager.Configuration öğesinin bir parçası olarak WorkerFactory belirterek çalışma zamanında kendi Worker örneklerinizi oluşturabilirsiniz. Yedek fabrika, WorkManager'ın önceki sürümlerinin davranışıyla eşleşen DefaultWorkerFactory.
    • Worker ve NonBlockingWorker için varsayılan oluşturucuları artık desteklenmiyor olarak işaretlendi. Lütfen yeni oluşturucuyu (Worker(Context, WorkerParameters)) kullanın ve super(Context, WorkerParameters) çağrısı yapı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ığı olmadan). Gelecek sürümlerde, API'de ListenableFutures özelliğini kullanıma sunacağız. Bu değişiklik, NonBlockingWorker öğesinin nihai olarak gösterilmesini destekleyecek.
  • TestDriver.setInitialDelayMet(UUID) ve TestDriver.setPeriodDelayMet(UUID) aracılığıyla TestDriver uygulamasına süreli işi tetikleme özelliği ekleyin. b/113360060

Çarpıcı Değişiklikler

  • Varsayılan Worker ve NonBlockingWorker oluşturucuları kullanımdan kaldırıldı. Lütfen en kısa zamanda yeni oluşturucuya geçin. Gelecekteki sürümler varsayılan oluşturucuyu kaldıracaktır.

Sürüm 1.0.0-alpha08

27 Ağustos 2018

Hata Düzeltmeleri

  • WorkManager bileşenleri, doğrudan başlatma sırasında tetiklenmemeleri için doğrudan başlatmanın farkında değil olarak etiketlendi. Gelecekte, doğrudan başlatmaya duyarlı bir WorkManager sürümü sunacağız. b/112665532
  • Yeniden denenen çalışmanın çalışmamasına neden olan sorun düzeltildi. b/112604021
  • Periyodik işlerin tekrar tekrar yürütülmemesi düzeltildi (yukarıdaki sorunla ilgili). b/112859683
  • Uygulama işlemi çalışırken uygulanan geri yükleme politikaları.
  • Data ürünündeki istisna mesajları, sınırın 10 KB olduğunu belirtecek şekilde düzeltildi.
  • JobScheduler işleminin tamamlanmasındaki bazı gecikmeleri 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ürebilecek negatif sınırlara sahip olası bir SQL sorgusu düzeltildi.
  • Yürütme işlemi tamamlanmışsa bu çalışmanın diğer Planlayıcılardaki beklemedeki tüm kopyaları artık doğru bir şekilde iptal edilir. Bu durum, JobScheduler iş sınırının aşılmasına neden oldu. b/111569265
  • ConstraintTracker içindeki bir ConcurrentModificationException düzeltildi. b/112272753
  • Data.getBooleanArray(String) ve Data.getIntArray(String) dönüş türü ek açıklamaları @NonNull yerine @Nullable olarak değiştirildi. b/112275229

API Değişiklikleri

  • Worker, NonBlockingWorker adlı yeni sınıfın kapsamını genişletiyor. Bu durum mevcut kullanımı etkilemez. NonBlockingWorker gelecekte özel ileti dizisi çözümleri için tam olarak desteklenen bir varlık olacaktır.
  • Data.getBooleanArray(String) ve Data.getIntArray(String) dönüş türü ek açıklamaları @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

  • İşleri planlarken veritabanı kilidinin oluşmasını önleyin. b/111801342
  • Doz modundayken PeriodicWork uygulamasının planlanan şekilde çalışmamasına neden olan bir hata düzeltildi. b/111469837
  • WorkManager kilitlenmesine neden olan kısıtlamaları takip ederken yarış durumunu düzeltin. googlecodelabs/android-workmanager/issues/56
  • WorkRequest.Builder#build() kullanırken benzersiz WorkRequest oluşturun. b/111408337
  • RescheduleReceiver kullanımını yalnızca gereken 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 artık @Nullable yerine @NonNull ek açıklaması bulunuyor. Bunun yerine, manuel başlatma sırasında singleton düzgün bir şekilde başlatılmazsa yöntem bir IllegalStateException atar. Bu, ihlal ediyor olabilir.
  • WorkManager ayrıntısını kontrol edebilen yeni bir API (Configuration.Builder.setMinimumLoggingLevel(int)) eklendi. Varsayılan olarak, WorkManager Log.INFO ve sonraki sürümleri günlüğe kaydeder.
  • Data.getString() imzası, artık varsayılan değeri kullanmayacak şekilde değiştirildi (dolaylı olarak null). Bu, API'de zarar veren bir değişikliktir.
  • Bazı yöntemler yalnızca dahili kullanım için gerekli olan yöntemler @hide olarak işaretlendi. Bu, Constraints oluşturucuyu, Data.toByteArray() ve Data.fromByteArray(byte[])'yi içerir. Bu, API'de zarar veren bir değişikliktir.

Hata Düzeltmeleri

  • WorkManager, bilinen otomatik yedekleme durumları sırasında artık iş yürütmez. Bu durum kilitlenmeye neden olmuş olabilir. b/110564377
  • JobScheduler kullanılırken PeriodicWorkRequest sn. için çift zaman planlaması düzeltildi. b/110798652
  • Cihaz dozundan sonra PeriodicWorkRequest öğelerinin doğru şekilde çalışmamasıyla ilgili sorun düzeltildi. b/111469837
  • Firebase JobDispatcher kullanılırken yaşanan ilk gecikmelerle ilgili sorun düzeltildi. b/111141023
  • Olası bazı yarış koşulları ve zamanlama sorunları giderildi.
  • Artık ihtiyaç duyulmayan BroadcastReceiver öğeleri doğru şekilde yer açtı.
  • Uygulamalar zorla kapatıldıktan sonra yeniden başlatıldığında yeniden planlama performansı optimize edildi.
  • Belirtilen WorkRequest öğesi sıraya alınmadan önce veya sıraya alındıktan sonra TestScheduler.setAllConstraintsMet(UUID) öğesinin çağrılmasına izin verildi. b/111238024

Çarpıcı Değişiklikler

  • WorkManager.getInstance() için artık @Nullable yerine @NonNull ek açıklaması bulunuyor.
  • Data.getString() imzası, artık varsayılan değeri kullanmayacak şekilde değiştirildi (dolaylı olarak null).
  • Bazı yöntemler yalnızca dahili kullanım için gerekli olan yöntemler @hide olarak işaretlendi. Bu, Constraints oluşturucuyu, Data.toByteArray() ve Data.fromByteArray(byte[])'yi içerir.

Sürüm 1.0.0-alpha04

26 Haziran 2018

Hata Düzeltmeleri

  • AlarmManager tabanlı uygulama kullanılırken PeriodicWorkRequest'ler artık doğru şekilde yeniden planlandı.
  • Zorla durdurma veya yeniden başlatma sonrasında tüm çalışanlar yeniden planlanırken yaşanabilecek ANR sorunu düzeltildi. b/110507716
  • Çeşitli WorkManager API'lerine null değer ek açıklamaları eklendi. b/110344065
  • Çalışan yürütme sırasında ortaya çıkan yakalanmamış istisnaları günlüğe kaydedin. b/109900862
  • WorkManager'ın eski bir sürümüne geri dönmeye karar vermeniz ihtimaline karşı yıkıcı veritabanı taşıma işlemlerine izin verilir. b/74633270
  • Yinelenen örtülü etiketler oluşturulurken meydana gelen taşıma kilitlenmeleri düzeltildi. Bu, yalnızca aynı örtülü etiket biçimini kullandıysanız oluşan çok nadir bir sorundur.

Sürüm 1.0.0-alpha03

19 Haziran 2018

Hata Düzeltmeleri

  • AlarmManager tabanlı uygulamadaki 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 tetikleyicisi olan işler artık yeniden başlatmalar boyunca devam ediyor. b/80234744

  • Doküman 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() ürününün eşzamanlı sürümü olan getStatusesSync() eklendi.
  • Worker, kullanıcı tarafından başlatılan iptal ile geçici olarak işletim sistemi tarafından istenen durdurmayı birbirinden ayırt edebilir. Herhangi bir durdurma istendiyse Worker.isStopped(), true değerini döndürür. Worker.isCancelled(), çalışma 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 içerik, Worker.getNetwork() aracılığıyla kullanıma sunuldu.
  • JobScheduler veya AlarmManager ürününe gönderilebilecek iş sayısını zorunlu kılabilmeniz için Configuration.Builder.setMaxSchedulerLimit(int maxSchedulerLimit) eklendi. Bu, WorkManager adlı kullanıcının mevcut JobScheduler slotlarınızın tamamını kullanmasını önlemeye yardımcı olur.
  • WorkManager tarafından kullanılması güvenli olan JobScheduler iş kimliği aralığının tanımlanmasına 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 eklemenize olanak tanır. b/79600647
  • WorkManager.cancelAllWork() tüm Worker öğelerini iptal eder. WorkManager yöntemini kullanan kitaplıklar, dahili durumun ek temizlenmesi için WorkManager.getLastCancelAllTimeMillis() kullanarak bu yöntemin en son ne zaman çağrıldığını sorgulayabilir.
  • Tamamlanan işleri dahili veritabanından kaldırmak için WorkManager.pruneWork() eklendi. b/79950952, b/109710758

Davranış Değişiklikleri

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

Çarpıcı Değişiklikler

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

Sürüm 1.0.0-alpha02

24 Mayıs 2018

Hata Düzeltmeleri

  • State.isFinished() için bir NullPointerException düzeltildi. b/79550068
  • Worker işlemlerinin Application.onCreate() tarihinde yeniden planlanmasına neden olan sorun düzeltildi. b/79660657
  • İşletim sisteminin izin verdiğinden daha fazla iş planlamanıza neden olan sorun düzeltildi. b/79497378
  • Worker ile ilişkili uyanık kalma kilitlerinin temizlenmesi arka plan iş parçacığına taşındı.
  • AlarmManager uygulaması, beklemedeki tüm işler tamamlandığında artık doğru şekilde temizleniyor.
  • İngilizce dışındaki yerel ayarları etkileyen SQL sorgularının temizlenmesi sorunu düzeltildi. b/80065360
  • Data alan adındaki 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 öğeleri, durdurulmalarına tepki verebilir. Worker.isStopped(), bir Worker cihazının durdurulup durdurulmadığını kontrol etmek için kullanılabilir. Worker.onStopped(), basit temizleme işlemleri gerçekleştirmek için kullanılabilir.
  • Worker.getTags() API'si, Worker ile ilişkili etiketlerin Set değerini döndürür.
  • Süre ve TimeUnit sn. kombinasyonundan oluşan API'ler için javax.time.Duration aşırı yüklemeleri eklendi. Bu, @RequiresApi(26) tarafından korunuyor.
  • WorkManager uzantı, androidx.work.ktx paketinden androidx.work paketine taşındı. Eski uzantılar artık kullanılmıyor 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 planlama ve yürütme sürecini basitleştirir garantili, kısıta duyarlı arka plan çalışmasıdır. Bu ilk sürüm 1.0.0-alpha01.