WorkManager

WorkManager API, ertelenebilir ve eşzamansız görevleri güvenilir bir şekilde çalıştırılacak şekilde planlamayı kolaylaştırır. Bu API'ler, bir görev oluşturmanıza ve iş kısıtlamaları karşılandığında çalıştırmak üzere WorkManager'a teslim etmenize olanak tanır.
Son Güncelleme Kararlı Sürüm Sürüm Adayı Beta sürümü Alfa Sürümü
23 Eylül 2026 2.12.0 - - -

Bağımlılıkları bildirme

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

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

Modern

dependencies {
    def work_version = "2.12.0"

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

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

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

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

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

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

Kotlin

dependencies {
    val work_version = "2.12.0"

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

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

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

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

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

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

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

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

Geri bildirim

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

Yeni sorun oluşturma

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

Sürüm 2.12

Sürüm 2.12.0

23 Eylül 2026

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

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

  • minSdk, API 23'ten API 24'e güncellendi.
  • Yeni bir yapay nesne olan androidx.work:work-analytics, işinizin yürütme geçmişini incelemek için deneysel Work Metrics API'lerini ekler. WorkMetricsInfoRepository, iş etkinliği zaman damgaları, çalışan süresi, toplam kümülatif çalışma süresi ve çalıştırma denemeleri dökümleri başına WorkMetricsInfo kaydeder. Metrikler, yapılandırılabilir sorgular aracılığıyla okunabilir veya tamamlanan işlerin Flow olarak gözlemlenebilir. Bu API'ler için @ExperimentalWorkMetricsApi'yı etkinleştirmeniz gerekir.
  • Yeni deneysel etkinlik işleyici API'leri, WorkManager'nın yürütülmesini ve planlanmasını doğrudan gözlemlemenize olanak tanır. Configuration.Builder artık çalışan yürütme etkinlikleri (başlatma, bitirme, durdurma ve yakalanmamış istisnalar) için bir dinleyiciyi ve planlama etkinlikleri (sıraya alma, engellemeyi kaldırma, güncelleme, iptal ve başarısız ön koşullar) için bir dinleyiciyi kabul ediyor. Bunlar, work-analytics'ın temelini oluşturan yapı taşlarıdır.

Sürüm 2.12.0-rc01

12 Ağustos 2026

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

Hata Düzeltmeleri

  • WorkConstraintsDaoTest sınıfı ve dosya adındaki yazım hatası düzeltildi. (I0868d)
  • içindeki bileşen manifestosunun varsayılan etkinleştirme durumlarını PackageManagerHelper içinde sorgulayarak ve önbelleğe alarak WorkManager başlatma sırasında PackageManagerService içindeki kilit çekişmesi azaltıldı. (Id84ba, b/528755807)
  • Bir çalışan aktif olarak çalışırken WorkManager.updateWork çağrıldığında yürütme yaşam döngüsü olay kancalarının ve telemetri izlemenin hemen güncelleme sonrası nesle geçmesine neden olan sorun düzeltildi. (Ie80e8, b/511074795)

Sürüm 2.12.0-beta01

29 Temmuz 2026

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

Hata Düzeltmeleri

  • Yürütme birimi istisnaları yakalanırken bellek sızıntısı sorununu düzeltme (I3404e, b/532588487)
  • RemoteListenableWorker için iptal yayılımı iyileştirildi. Böylece sistem tarafından başlatılan çalışan durdurmaları, uzak eş yordamları düzgün şekilde iptal edip işi yeniden planlarken kendi kendini iptal eden uzak çalışanlar işi doğru şekilde BAŞARISIZ olarak işaretler. Not: Bu davranış, deneysel doğrulamaya izin vermek ve güvenilirlik metriklerinin sabit kalmasını sağlamak için şu anda kitaplık grubuyla kısıtlanmış Configuration.isRemoteCancellationPropagationFixEnabled işareti (varsayılan olarak yanlış) ile kontrol edilmektedir. İşaret, kalıcı olarak kaldırılmadan önce bu davranışın test edilmesi gerekir. (I387f3, b/420724435)

Sürüm 2.12.0-alpha01

15 Temmuz 2026

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

API Değişiklikleri

  • Metrik bilgilerini filtrelemek için WorkMetricsQuery API'si eklendi (I132b4, b/522338412)
  • Çalışanların yürütme süresini ve toplam kümülatif çalışma süresini izlemek için WorkMetricsInfo'de workerDurationMillis ve totalRuntimeMillis'yi uygulayın. (I57f65, b/507212208)
  • Eski metriklerin temizlenmesine olanak tanımak için WorkMetricsInfoRepository'e retentionDuration (Süre, API 26+) ve retentionTime/retentionTimeUnit (API 23+) oluşturucuları eklendi. Varsayılan süre 7 gündür. (Ifdf2e, b/522338412)
  • Tamamlanmış WorkMetricsInfo için akış API'si ekleme (I11ec2, b/507212999)
  • work-analytics sınıflarına eksik deneysel ek açıklamayı ekleyin (I1a055, b/528112001)
  • androidx.benchmark artık 24 minSdk sahibi. (Ic2a85)
  • WorkMetricsInfo'de stopReasonCounts, explicitRetryCount ve runAttemptCount'yi uygulayın. (I95498, b/507212225)
  • Kuyruğa alma, engeli kaldırma, ilk başlatma ve bitiş zaman damgaları dahil olmak üzere iş yürütme geçmişini izlemek için WorkMetricsInfo API'lerini ve veritabanı şemasını uygulayın. (I163e9, b/479123623, b/507212482)
  • İşlem içi fırsatçı planlamayı devre dışı bırakmak için deneysel API ekleyin (I1062d, b/513299442)
  • WorkManager planlama etkinliklerini dinlemek için deneysel API eklendi (I14487, b/448485695)
  • WorkInfo öğesine çalışan sınıfı adı ekleyin (I57da1, b/448485695)
  • Deneysel etkinlik işleyici API'sine daha ayrıntılı ek açıklama ekleyin (Icaa8e, b/448485695)
  • Data sınıfının örneklerinden boş değer atanabilir dize dizilerinin alınmasına olanak tanıyan yeni bir API eklendi (I78bc3, b/383071402).
  • work-analytics yapısı oluşturma (Idc7c2, b/465357612)
  • Çalışan yürütme etkinlikleri için dinleyici ayarlamak üzere deneysel API eklendi (I06b38, b/448485695)

Hata Düzeltmeleri

  • Varsayılan WM yapılandırması (Ic2c42, b/506239869) için özel iş parçacığı havuzu yerine Dispatchers.Default kullanın.
  • Kötü niyetli çalışanları yönetmek için testleri iyileştirme ve ekleme (I500f3, b/506239869)
  • WorkManager's yürütme işleyici dağıtımında ConcurrentModificationException düzeltildi. (I4cc18, b/506239869)
  • ACCESS_NETWORK_STATE izinleri eksik olduğundan ağ kısıtlaması geri çağırmaları kaydedilirken WorkManager'da işlemin kilitlenmesi sorunu düzeltildi. (I7045a, b/446013734)
  • DEBUG günlükleri etkinleştirildiğinde günlük ayrıntılarını iyileştirme (Id9e5f, b/491209738)
  • Yeniden denenen işin işletim sistemiyle planlanamamasıyla ilgili hata düzeltildi (I452fc, b/504085166, b/517339607).
  • Configuration.Provider referans doküman bağlantısı düzeltildi (Ieedb7, b/340913210)
  • Oluşturulan etkinlik kancaları, işlemlerin engellenmesine neden olmuyor (I27cd8, b/448485695)
  • WorkManager artık genel SQLiteException üzerinde başlatmayı yeniden deniyor. (I98436, b/485368721)
  • Geliştiricilerin, WorkInfo.STOP_REASON_UNKNOWN ile eşleyerek 0 olan mevcut olmayan bir durdurma nedeni kodu almasına neden olan sorun düzeltildi. (I0b175, b/479314734)
  • Ağ kısıtlamaları karşılandığında bile ağ aramalarının arka planda başarısız olmasıyla ilgili ek sorunlar düzeltildi (Ic7f73, b/445324855).
  • NetworkStateTracker'da güvenlik istisnasını işleyin. (I4b7ca, b/480123154)
  • Yürütme kancalarının doğru bir WorkInfo anlık görüntüsü aldığından emin olun (I25ebb, b/448485695)
  • Android 15'te arka plandaki ağ isteklerinin başarısız olmasına neden olan sorun düzeltildi. (I60f24, I8a0a2, b/452081708) (I5abb7, b/465016918)
  • Yakalanmamış bir istisna nedeniyle başarısız olan periyodik WorkRequestların yeniden planlanmamasına neden olan sorun düzeltildi. (Ia6b92, b/443879071)

Sürüm 2.11

Sürüm 2.11.2

25 Mart 2026

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

Hata Düzeltmeleri

  • Ağ kısıtlamaları karşılandığında bile ağ çağrılarının arka planda başarısız olmasıyla ilgili ek sorunlar düzeltildi (Ic7f73, b/445324855).
  • NetworkStateTracker'da güvenlik istisnasını işleyin. (I4b7ca, b/480123154)
  • Yakalanmamış bir istisna nedeniyle başarısız olan periyodik WorkRequestların yeniden planlanmamasına neden olan sorun düzeltildi. (Ia6b92, b/443879071)

Sürüm 2.11.1

28 Ocak 2026

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

Hata Düzeltmeleri

  • Android 15 ve sonraki sürümlerde bağlantı engellendiğinde ağ durumu kısıtlamasının geçmesini düzeltin. (I5abb7, b/465016918)
  • Sabit ağ kısıtlaması izlemenin, ilk değeri için engellenen durumu dikkate almaması sorunu düzeltildi. (I8a0a2, b/452081708)
  • Android 15 ve sonraki sürümlerde bağlantı engellendiğinde ağ isteği kısıtlamasının iletilmesiyle ilgili sorun düzeltildi. (I60f24, b/452081708)

Sürüm 2.11.0

22 Ekim 2025

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

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

  • minSdk, API 21'den API 23'e güncellendi.
  • WorkManager yapılandırma oluşturucusundaki setRemoteSessionTimeoutMillis API'si, RemoteWorkManager oturumunun son kullanımından itibaren ne kadar süre boyunca etkin kalacağını yapılandırmak için eklendi.

Sürüm 2.11.0-rc01

8 Ekim 2025

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

Sürüm 2.11.0-beta01

24 Eylül 2025

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

API Değişiklikleri

  • stopRunningWorkWithReason öğesini WorkManager TestDriver alanına ekleyin. (Ie53b2, b/439955564)

Hata Düzeltmeleri

  • Bekleyen komutlar olduğunda ön plan hizmetinin durdurulması sorunu düzeltildi (Iae822, b/432069314)
  • Uzaktan eşzamanlı işlev çalışanın uzaktan hizmetin bağlantısını kaldırmamasının düzeltilmesi (I842f2, b/247113322)

Sürüm 2.11.0-alpha01

27 Ağustos 2025

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

API Değişiklikleri

  • minSdk, API 21'den API 23'e güncellendi (Ibdfca, b/380448311, b/435705964, b/435705223)
  • WorkManager'ın yapılandırma oluşturucusundaki setRemoteSessionTimeoutMillis API'si, bir RemoteWorkManager oturumunun son kullanımından itibaren ne kadar süre boyunca etkin kalacağını yapılandırmak için eklendi. (Ib23c8)
  • WorkRequest.Builder içinde deneysel bir API ekleyerek sistem tarafından kesintiye uğratılan işlerde geri çekilme uygulayın. (Ie2dc7, b/335513480)
  • Özel WorkerFactory uygulamalarını (If6bff, b/389154854) desteklemek için oluşturulanlardan farklı bir çalışan sınıfını TestListenableWorkerBuilder'ya iletmek üzere test API'si ekleyin.

Hata Düzeltmeleri

  • Gereksiz IPC'leri önlemek için SharedNetworkCallback'deki ağ özelliklerini önbelleğe alın (Ie4027, b/427115602)
  • İlk öğeden sonraki iş öğelerinin mevcut ağ özelliklerini alamadığı ve bunun yerine zaman aşımından sonra ConstraintsNotMet ile karşılaştığı ağ kısıtlaması değerlendirmesiyle ilgili sorun düzeltildi (Ib6a66, b/427115602).

Sürüm 2.10

Sürüm 2.10.5

24 Eylül 2025

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

Hata Düzeltmeleri

  • Bekleyen komutlar olduğunda ön plan hizmetinin durdurulması sorunu düzeltildi (Iae822, b/432069314)

Sürüm 2.10.4

10 Eylül 2025

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

Hata Düzeltmeleri

  • RemoteCoroutineWorker'nın uzak hizmetin bağlantısını kaldırmamasıyla ilgili sorunu düzeltme (I842f2, b/247113322)

Sürüm 2.10.3

30 Temmuz 2025

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

Hata Düzeltmeleri

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

Sürüm 2.10.2

18 Haziran 2025

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

Hata Düzeltmeleri

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

Sürüm 2.10.1

23 Nisan 2025

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

Hata Düzeltmeleri

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

Sürüm 2.10.0

30 Ekim 2024

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

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

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

Sürüm 2.10.0-rc01

24 Ekim 2024

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

Sürüm 2.10.0-beta01

2 Ekim 2024

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

Sürüm 2.10.0-alpha04

18 Eylül 2024

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

API Değişiklikleri

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

Sürüm 2.10.0-alpha03

4 Eylül 2024

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

Yeni Özellikler

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

API Değişiklikleri

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

Hata Düzeltmeleri

  • WorkManager İşin ön plan türünde, iptal edilmiş Android 14 ön koşul izinleri varken uzun süredir çalışan bir çalışanı (ör. ön plan çalışanı) yeniden başlatmaya çalışırken kilitlenmeye neden olan sorun düzeltildi. (b/333957914)
  • AGP 7.3 veya sonraki sürümleriyle (ör. R8 sürümü 3.3) R8 kullanılırken API modelleme aracılığıyla otomatik olarak gerçekleştiği ve AGP 8.1 veya sonraki sürümleriyle (ör. D8 sürümü 8.1) tüm derlemeler için geçerli olduğu için yeni platform API'lerine erişimin manuel olarak ana hatlarını oluşturma işlemi kaldırıldı. AGP kullanmayan müşterilerin D8'in 8.1 veya sonraki bir sürümüne güncellemeleri önerilir. Daha fazla bilgi için bu makaleye göz atın. (Ia60e0, b/345472586)

Sürüm 2.10.0-alpha02

17 Nisan 2024

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

API Değişiklikleri

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

Sürüm 2.10.0-alpha01

24 Ocak 2024

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

Yeni Özellikler

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

API Değişiklikleri

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

Sürüm 2.9

Sürüm 2.9.1

7 Ağustos 2024

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

Hata Düzeltmeleri

  • WorkManager İşin ön plan türünde iptal edilmiş Android 14 ön koşul izinleri varken uzun süredir çalışan bir çalışanı (ör. ön plan çalışanı) yeniden başlatmaya çalışırken kilitlenmeye neden olan sorun düzeltildi. (b/333957914)

Sürüm 2.9.0

29 Kasım 2023

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

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

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

API Değişiklikleri

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

Sürüm 2.9.0-rc01

18 Ekim 2023

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

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

Sürüm 2.9.0-beta01

6 Eylül 2023

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

API Değişiklikleri

Sürüm 2.9.0-alpha02

26 Temmuz 2023

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

Yeni Özellikler

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

API Değişiklikleri

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

Hata Düzeltmeleri

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

Sürüm 2.9.0-alpha01

7 Haziran 2023

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

Yeni Özellikler

  • Flow üzerinden gözlemlenebilirlik. LiveData yerine, çalışanın ilerleme durumu artık akışın WorkManager.getWorkInfosFlow ve benzeri yöntemlerle gözlemlenebilir.
  • setNextScheduleTimeOverride aracılığıyla periyodik çalışanların hassas şekilde planlanması. Bu sayede, bir sonraki periyodik çalışma programı dinamik olarak hesaplanabilir. Bu da uyarlanabilir yenileme süreleri, özel yeniden deneme davranışı veya haber feed'i worker sınıfının her sabah kullanıcı uyanmadan önce kayma olmadan çalıştırılması gibi ileri seviye özelliklerin uygulanmasına olanak tanır. Bir sonraki çalışan planlanırken mevcut çalışanın iptal edilmesini önlemek için bu tekniklerle birlikte ExistingPeriodicWorkPolicy.UPDATE kullanılmalıdır.
  • WorkManager, iş parçacığı eşleştirme üretimiyle test ediyor. ExecutorsMode.PRESERVE_EXECUTORS, Configuration içinde ayarlanan yürütücüleri korumak ve gerçek ana iş parçacığını kullanmak için kullanılabilir.
  • CoroutineWorker gibi Coroutines API'leri, ek yapay nesne work-runtime-ktx'den ana yapay nesne work-runtime'ye taşındı. work-runtime-ktx artık boş.

API Değişiklikleri

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

Sürüm 2.8

Sürüm 2.8.1

22 Mart 2023

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

Hata Düzeltmeleri

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

Sürüm 2.8.0

8 Şubat 2023

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

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

Yeni Özellikler

API Değişiklikleri

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

Hata Düzeltmeleri

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

Sürüm 2.8.0-rc01

7 Aralık 2022

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

Yeni Özellikler

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

Sürüm 2.8.0-beta02

9 Kasım 2022

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

Hata Düzeltmeleri

  • equals yönteminin WorkInfo içindeki yeni nesil bilgilerini dikkate almayan sorunu düzeltildi. (4977cc)

Sürüm 2.8.0-beta01

5 Ekim 2022

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

Hata Düzeltmeleri

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

Sürüm 2.8.0-alpha04

7 Eylül 2022

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

API Değişiklikleri

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

Sürüm 2.8.0-alpha03

10 Ağustos 2022

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

Yeni Özellikler

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

API Değişiklikleri

  • WorkManager.updateWork, orijinal sıralama 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ını güncellemeye olanak tanır. Mevcut REPLACE ile benzerdir ancak daha az müdahalecidir: Şu anda çalışıyorsa bir çalışanı iptal etmez ve kuyruğa alma süresini korur. İlk gecikme ve dönem, güncelleme zamanı yerine orijinal kuyruğa alma süresinden hesaplanır. REPLACE ve UPDATE arasındaki karışıklığı azaltmak için REPLACE desteği sonlandırıldı. REPLACE öğesinin önceki anlamsal yapısını korumak istiyorsanız REPLACE ile aynı olan yeni eklenen CANCEL_AND_REENQUEUE öğesini kullanabilirsiniz. (I985ed, b/219446409)
  • SchedulingExceptionHandler tanımlayarak planlama istisnalarını engelleme özelliği ekleyin. (I033eb)
  • OneTimeWorkRequest ve PeriodicWorkRequest için satır içi yardımcılar androidx.work:work-runtime-ktx konumundan androidx.work:work-runtime konumuna taşındı (I0010f, b/209145335)

Hata Düzeltmeleri

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

Sürüm 2.8.0-alpha02

6 Nisan 2022

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

API Değişiklikleri

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

Sürüm 2.8.0-alpha01

12 Ocak 2022

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

API Değişiklikleri

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

Hata Düzeltmeleri

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

Sürüm 2.7

Sürüm 2.7.1

17 Kasım 2021

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

Hata Düzeltmeleri

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

Sürüm 2.7.0

13 Ekim 2021

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

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

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

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

Sürüm 2.7.0-rc01

29 Eylül 2021

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

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

Sürüm 2.7.0-beta01

1 Eylül 2021

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

Yeni Özellikler

  • WorkManager başlatılırken çok süreçli SQLite çekişmesini azaltır.

API Değişiklikleri

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

Hata Düzeltmeleri

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

Sürüm 2.7.0-alpha05

21 Temmuz 2021

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

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

Sürüm 2.7.0-alpha04

2 Haziran 2021

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

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

API Değişiklikleri

Hata Düzeltmeleri

  • Hızlandırılmış işler yeniden planlandığında artık hızlandırılmış olarak kabul edilmez. Bunlar normal işlere dönüşür.

Sürüm 2.7.0-alpha03

21 Nisan 2021

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

Yeni Özellikler

API Değişiklikleri

Sürüm 2.7.0-alpha02

10 Mart 2021

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

Hata Düzeltmeleri

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

Sürüm 2.7.0-alpha01

18 Şubat 2021

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

Yeni Özellikler

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

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

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

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

API Değişiklikleri

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

Sürüm 2.6.0

Sürüm 2.6.0

1 Eylül 2021

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

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

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

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

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

Sürüm 2.6.0-rc01

4 Ağustos 2021

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

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

Sürüm 2.6.0-beta02

21 Temmuz 2021

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

Hata Düzeltmeleri

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

Sürüm 2.6.0-beta01

2 Haziran 2021

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

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

Sürüm 2.6.0-alpha02

21 Nisan 2021

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

Yeni Özellikler

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

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

API Değişiklikleri

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

Sürüm 2.6.0-alpha01

24 Mart 2021

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

Yeni Özellikler

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

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

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

    (veya)

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

API Değişiklikleri

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

Hata Düzeltmeleri

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

Sürüm 2.5.0

Sürüm 2.5.0

27 Ocak 2021

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

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

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

Sürüm 2.5.0-rc01

13 Ocak 2021

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

Hata Düzeltmeleri

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

Sürüm 2.5.0-beta02

2 Aralık 2020

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

Hata Düzeltmeleri

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

Sürüm 2.5.0-beta01

28 Ekim 2020

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

Yeni Özellikler

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

Hata Düzeltmeleri

  • ListenableWorker kesintiye uğradığında, daha sonra yeniden planlanabilmesi için 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 iptal edilir. 2.5.0-alpha03 sürümü şu commit'leri içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

  • Varsayılan uygulama sürecinin adını belirlemek için ApplicationInfo kullanın. (b/168716641, aosp/1429950)
  • RemoteWorkManager ve RemoteWorkContinuation için görünürlük kurallarını düzeltin. Bu API'ler artık @Restricted olarak işaretlenmiyor. (aosp/1432091)
  • :work:work-multiprocess için ProGuard kurallarını düzeltin. (aosp/1432091)
  • Ön plan hizmetine bağlı uzun sü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 iptal edilir. 2.5.0-alpha02 sürümü şu commit'leri içerir.

Yeni Özellikler

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

API Değişiklikleri

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

Hata Düzeltmeleri

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

Sürüm 2.5.0-alpha01

19 Ağustos 2020

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

Yeni Özellikler

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

Hata Düzeltmeleri

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

Harici Katkı (External Contribution)

  • ArrayCreatingInputMerger ile ilgili dokümanlar Zac Sweers tarafından düzeltildi (github/43).

Sürüm 2.4.0

Sürüm 2.4.0

22 Temmuz 2020

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

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

  • WorkManagers işlemdeki zamanlayıcısı artık daha yetenekli. Daha önce, devam eden Scheduler yalnızca gecikmeyen ve kısıtlamaları karşılanan işleri yürütmeyi düşünüyordu. Şimdi, devam eden zamanlayıcı, PeriodicWorkRequest'ler de dahil olmak üzere gelecekte yürütülebilecek WorkRequestleri izler. Devam eden Scheduler da planlama sınırlarına uymaz (ancak yine de WorkManager tarafından kullanılan Executor boyutunda kısıtlanır). Bu sayede uygulama artık ön plandayken çok daha fazla WorkRequest yürütebilir. WorkManager, gecikmeli işlerin ön planda yürütülmesini yönetmek için yeni bir yapılandırılabilir RunnableScheduler de sunar. (aosp/1185778)
  • WorkManager artık RxJava 3'ü destekliyor. RxJava 3'ü kullanmak için şu bağımlılığı eklemeniz gerekir: implementation "androidx.work:work-rxjava3:2.4.0". (aosp/1277904)
  • WorkInfosorgusu yapabilme özelliği eklendiWorkQuery. Bu özellik, geliştiriciler birden fazla özelliğin kombinasyonuyla WorkInfo sorgulamak istediğinde yararlıdır. Daha fazla bilgi için WorkQuery.Builder.fromStates(...), WorkQuery.Builder. fromTags(...) veya WorkQuery.Builder.fromUniqueWorkNames(...) sayfalarına bakın. (aosp/1253230, b/143847546)
  • Aşağıdaki yöntemleri kullanarak WorkManager teşhis bilgilerini isteme özelliği ekleyin:

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

    Bu, aşağıdakiler de dahil olmak üzere birçok faydalı bilgi sağlar:

    • Son 24 saat içinde tamamlanan WorkRequest'ler.
    • Şu anda ÇALIŞAN WorkRequest'ler.
    • Planlanmış İş İstekleri (aosp/1235501)
  • APPEND ile benzer olan ancak iptal edilmiş veya ön koşulları karşılamayan bir zincirin yerine geçen ExistingWorkPolicy.APPEND_OR_REPLACE öğesini ekleyin. (b/134613984, aosp/1199640)

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

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

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

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

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

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

  • Ön planda çalışan bir Worker kesintiye uğradıktan sonra ForegroundService öğesinin durdurulmamasına neden olan hata düzeltildi. (b/155579898, aosp/1302153)

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

Sürüm 2.4.0-rc01

24 Haziran 2020

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

Hata Düzeltmeleri

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

Sürüm 2.4.0-beta01

20 Mayıs 2020

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

Hata Düzeltmeleri

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

Sürüm 2.4.0-alpha03

29 Nisan 2020

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

Yeni Özellikler

  • WorkManager artık RxJava 3'ü destekliyor. RxJava 3'ü kullanmak için şu bağımlılığı eklemeniz gerekir: implementation "androidx.work:work-rxjava3:2.4.0-alpha03". (aosp/1277904)
  • Varsayılan 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() işlevinin çağrılması artık ListenableFuture üzerinden Exception sinyali verecek. (aosp/1285494)
  • WorkQuery.Builder artık final olarak işaretleniyor. (aosp/1275037)
  • WorkQuery.Builder fabrika yöntemleri withStates, withTags ve withUniqueWorkNames sırasıyla fromStates, fromTags ve fromUniqueWorkNames olarak yeniden adlandırıldı. (aosp/1280287)

Hata Düzeltmeleri

Sürüm 2.4.0-alpha02

1 Nisan 2020

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

Yeni Özellikler

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

API Değişiklikleri

  • WorkInfosorgusu yapabilme özelliği eklendiWorkQuery. Bu özellik, geliştiriciler birden fazla özelliğin kombinasyonuyla WorkInfo sorgulamak istediğinde yararlıdır. Daha fazla bilgi için WorkQuery.Builder withStates(...), WorkQuery.Builder withTags(...) veya WorkQuery.Builder withUniqueWorkNames(...) sayfalarına bakın. (aosp/1253230, b/143847546)

  • ListenableWorker tamamlanmadan önce tamamlanmayan setForegroundAsync() çağrıları artık döndürülen ListenableFuture üzerinde bir IllegalStateException ile işaretlenecek. (aosp/1262743)

Hata Düzeltmeleri

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

Sürüm 2.4.0-alpha01

4 Mart 2020

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

Yeni Özellikler

  • WorkManagers in-process scheduler artık daha yetenekli. Önceden, devam eden işlemdeki planlayıcı yalnızca gecikmemiş ve kısıtlamaları karşılanmış işlerin yürütülmesini değerlendiriyordu. Şimdi, devam eden zamanlayıcı, PeriodicWorkRequest'ler de dahil olmak üzere gelecekte yürütülebilecek WorkRequest'leri izler. Devam eden işlem planlayıcı da planlama sınırlarına uymaz (ancak WorkManager tarafından kullanılan Executor boyutuyla sınırlıdır). Bu sayede uygulama ön plandayken çok daha fazla WorkRequest çalıştırılabilir. (aosp/1185778)

  • adb shell am broadcast -a "androidx.work.diagnostics.REQUEST_DIAGNOSTICS" -p "<your_app_package_name>" kullanılarak WorkManager'dan teşhis bilgisi istenebilmesi özelliği eklendi. Bu, aşağıdakiler de dahil olmak üzere birçok faydalı bilgi sağlar:

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

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

API Değişiklikleri

  • APPEND ile benzer olan ancak ön koşulları iptal edilmiş veya başarısız olmuş bir zincirin yerini alan ExistingWorkPolicy.APPEND_OR_REPLACE öğesini ekleyin. (b/134613984, aosp/1199640)

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

Hata Düzeltmeleri

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

Sürüm 2.3.4

Sürüm 2.3.4

18 Mart 2020

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

Hata Düzeltmeleri

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

Sürüm 2.3.3

Sürüm 2.3.3

4 Mart 2020

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

Hata Düzeltmeleri

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

Sürüm 2.3.2

Sürüm 2.3.2

19 Şubat 2020

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

Hata Düzeltmeleri

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

Sürüm 2.3.1

Sürüm 2.3.1

5 Şubat 2020

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

Hata düzeltmeleri

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

Sürüm 2.3.0

Sürüm 2.3.0

22 Ocak 2020

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

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

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

Sürüm 2.3.0-rc01

8 Ocak 2020

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

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

Hata düzeltmeleri

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

Sürüm 2.3.0-beta02

18 Aralık 2019

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

Yeni özellikler

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

API değişiklikleri

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

Hata düzeltmeleri

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

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

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

Sürüm 2.3.0-beta01

20 Kasım 2019

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

Yeni özellikler

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

Sürüm 2.3.0-alpha03

23 Ekim 2019

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

Yeni özellikler

  • WorkManager.createCancelPendingIntent() API'si eklendi. Bu API, AndroidManifest.xml'da başka bir bileşen kaydetmek zorunda kalmadan WorkRequest'leri kolayca iptal etmenizi sağlar. Bu API, özellikle Notification konumlarından WorkRequest konumlarına yapılan yolculukların iptalini kolaylaştırır. Bu özelliğin 2.3.0 sürümündeki yeni ön plan API'leriyle birlikte kullanılacağını tahmin ediyoruz.
  • WorkManager artık androidx.room:*:2.2.0 kararlı sürümüne bağlı.

API değişiklikleri

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

Hata düzeltmeleri

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

Sürüm 2.3.0-alpha02

9 Ekim 2019

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

Yeni özellikler

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

API değişiklikleri

  • Data'deki containsKey API'si 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ıralanan WorkRequest sayısı zamanlama sınırlarına yaklaştığında işleri adil bir şekilde zamanlar. (aosp/1105766)
  • WorkManager, ListenableWorker#onStopped() işi yalnızca tamamlanmamışsa çağırır. (b/140055777)
  • WorkManager artık bir çalışan kesintiye uğradığında veya son durumuna ulaştığında ilerleme bilgilerini kaldırıyor. (aosp/1114572)
  • Data artık çok daha kullanışlı bir toString()görünüme sahip. (b/140945323)
  • Data artık daha iyi bir equals() yöntemine sahip. Ayrıca Array türleri için deepEquals özelliğini de destekler. (b/140922528)
  • WorkManager artık dahili veritabanını ve tercih dosyalarını yedeklenmeyen bir dizinde saklıyor. (b/114808216)

Sürüm 2.3.0-alpha01

22 Ağustos 2019

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

Yeni özellikler

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

API değişiklikleri

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

Hata düzeltmeleri

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

Sürüm 2.2.0

Sürüm 2.2.0

15 Ağustos 2019

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

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

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

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

Sürüm 2.2.0-rc01

30 Temmuz 2019

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

Hata düzeltmeleri

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

Sürüm 2.2.0-beta02

19 Temmuz 2019

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

Hata düzeltmeleri

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

Sürüm 2.2.0-beta01

17 Temmuz 2019

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

Yeni özellikler

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

Hata düzeltmeleri

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

Sürüm 2.1.0

Sürüm 2.1.0

11 Temmuz 2019

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

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

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

Sürüm 2.1.0-rc01

27 Haziran 2019

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

Hata düzeltmeleri

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

Sürüm 2.1.0-beta02

20 Haziran 2019

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

Hata düzeltmeleri

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

Sürüm 2.1.0-beta01

13 Haziran 2019

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

Hata düzeltmeleri

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

Sürüm 2.1.0-alpha03

5 Haziran 2019

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

Hata düzeltmeleri

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

Sürüm 2.1.0-alpha02

16 Mayıs 2019

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

API Değişiklikleri

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

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

  • WorkManager'ın tüm dahili kayıt işlemleri için kullandığı Executor öğesini Configuration.Builder.setTaskExecutor üzerinden özelleştirme özelliği eklendi.

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

Sürüm 2.1.0-alpha01

24 Nisan 2019

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

API Değişiklikleri

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

Sürüm 2.0.1

Sürüm 2.0.1

9 Nisan 2019

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

Sürüm 2.0.1-rc01

3 Nisan 2019

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

Hata Düzeltmeleri

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

Sürüm 2.0.0

Sürüm 2.0.0

20 Mart 2019

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

Sürüm 2.0.0-rc01

7 Mart 2019

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

AndroidX Öncesi Bağımlılıklar

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

Modern

dependencies {
    def work_version = "1.0.1"

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

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

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

Kotlin

dependencies {
    val work_version = "1.0.1"

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

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

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

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

Sürüm 1.0.1

Sürüm 1.0.1

9 Nisan 2019

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

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

Sürüm 1.0.1-rc01

2 Nisan 2019

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

Hata Düzeltmeleri

  • Robolectric testleri artık WorkManager ile düzgün şekilde çalışıyor. b/122553577
  • JobScheduler öncesi API'lerde kısıtlamalar izleme temizlenmediğinde ortaya çıkan uç durum kilitlenmesi düzeltildi. b/129226383
  • Uzun iş zincirleriyle ilgili StackOverflowError sorunu 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ünün ikinci sürüm adayıdır. Bu sürümde iki hata düzeltmesi yapıldı.

Hata Düzeltmeleri

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

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

Sürüm 1.0.0-rc01

14 Şubat 2019

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

Hata Düzeltmeleri

  • AlarmManager tabanlı uygulama artık PeriodicWorkRequest'ler için flex pencerelerini doğru şekilde dikkate alıyor. b/124274584

Sürüm 1.0.0-beta05

6 Şubat 2019

Bu sürümde bazı hata düzeltmeleri yapıldı.

Hata Düzeltmeleri

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

Sürüm 1.0.0-beta04

4 Şubat 2019

Bu sürümde bazı hata düzeltmeleri yapıldı.

Hata Düzeltmeleri

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

Sürüm 1.0.0-beta03

25 Ocak 2019

Bu sürümde bazı hata düzeltmeleri yapıldı.

Hata Düzeltmeleri

  • Bazı durumlarda işlerin düzgün şekilde yürütülmemesine neden olan bir regresyon 1.0.0-beta02 ile karşılaştık. b/123211993
  • Çalışmanın, geri çekilme zamanlamasına düzgün şekilde uymamasına neden olan sorun düzeltildi. b/122881597
  • Android 5.1 (API) veya önceki sürümlerin yüklü olduğu cihazlarda ConcurrentModificationException düzeltildi. Bu, 1.0.0-beta02 düzeltmesinin devamıdır. b/121345393
  • Manifest dosyamızda bu ek açıklamanın eksik olduğu bazı bileşenler için exported=false eklendi.
  • WorkManager'ın işletim sistemiyle nasıl etkileşime girdiği hakkında bilgiler paket düzeyindeki dokümanlara eklendi.

Sürüm 1.0.0-beta02

15 Ocak 2019

Bu sürümde bazı hata düzeltmeleri yapıldı.

Hata Düzeltmeleri

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

Sürüm 1.0.0-beta01

19 Aralık 2018

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

Hata Düzeltmeleri

  • Daha önce iptal edilmiş ve başarıyla tamamlanmış üst görevlerin alt görevleri artık çalıştırılmayacak. b/120811767
  • Günlük kaydı sınıfları düzgün şekilde başlatıldı (öncelikle testler sırasında ortaya çıkar).

Sürüm 1.0.0-alpha13

12 Aralık 2018

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

API Değişiklikleri

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

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

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

Sürüm 1.0.0-alpha12

5 Aralık 2018

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

API Değişiklikleri

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

Hata Düzeltmeleri

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

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

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

Sürüm 1.0.0-alpha11

8 Kasım 2018

Bu sürüm, beta tarihinde kararlı API olacak birçok değişiklik içerir. Bu sürümde API'de uyumluluğu bozan değişiklikler var. Lütfen aşağıdaki API'de Uyumsuzluğa Neden Olan Değişiklikler bölümüne bakın.

API Değişiklikleri

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

Hata Düzeltmeleri

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

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

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

Sürüm 1.0.0-alpha10

11 Ekim 2018

Bu sürüm, geliştirici kontrollü eşzamansız işlemleri destekler. Bu sürümde API'de zarar veren değişiklikler var. Lütfen aşağıdaki API'de Zarar Veren Değişiklikler bölümüne bakın.

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

API Değişiklikleri

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

Hata Düzeltmeleri

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

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

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

Sürüm 1.0.0-alpha09

19 Eylül 2018

Bilinen Sorun

"More than one file was found with OS independent path 'META-INF/proguard/androidx-annotations.pro'" (İşletim sisteminden bağımsız "META-INF/proguard/androidx-annotations.pro" yoluyla birden fazla dosya bulundu) sorununu yaşıyorsanız lütfen alfa10'da sorunu düzeltirken geçici bir çözüm olarak gradle dosyanıza aşağıdakileri ekleyin:

Modern

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

Kotlin

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

Hata Düzeltmeleri

  • "100 iş" hatası için gereken başka bir düzeltme eklendi. b/115560696
  • Yarış koşulları nedeniyle oluşan yabancı anahtar kısıtlama hataları için bazı düzeltmeler eklendi. b/114705286
  • Temel Worker'ye yetki verilmiş ConstraintTrackingWorker.onStopped(boolean) aramaları. b/114125093
  • Firebase JobDispatcher için doğru minimum geri çekilme gecikmesini zorunlu kılın. b/113304626
  • Kitaplık içinde daha iyi iş parçacığı oluşturma garantileri.
  • LiveData öğesinin dahili olarak yinelenmesini önlemeyle ilgili olası sorun düzeltildi.

API Değişiklikleri

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

Zarar Veren Değişiklikler (Breaking Changes)

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

Sürüm 1.0.0-alpha08

27 Ağustos 2018

Hata Düzeltmeleri

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

Sürüm 1.0.0-alpha07

16 Ağustos 2018

Hata Düzeltmeleri

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

API Değişiklikleri

  • Worker artık yeni bir sınıf olan NonBlockingWorker'ı sunuyor. Bu durum, mevcut kullanımı etkilemez. Gelecekte NonBlockingWorker, özel iş parçacığı çözümleri için tam olarak desteklenen bir öğe olacaktır.
  • Data.getBooleanArray(String) ve Data.getIntArray(String) işlevlerinin döndürülen tür 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

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

Sürüm 1.0.0-alpha05

24 Temmuz 2018

API Değişiklikleri

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

Hata Düzeltmeleri

  • WorkManager, otomatik yedeklemenin bilinen durumlarında artık iş yürütmez. Bu durum kilitlenmeye neden olmuş olabilir. b/110564377
  • JobScheduler kullanılırken PeriodicWorkRequest etkinliklerinin iki kez planlanması sorunu düzeltildi. b/110798652
  • Cihaz uyku moduna alındıktan sonra PeriodicWorkRequest işlemlerinin doğru şekilde yürütülmemesine neden olan sorun düzeltildi. b/111469837
  • Firebase JobDispatcher kullanılırken yaşanan ilk gecikme sorunu düzeltildi. b/111141023
  • Bazı olası yarış koşulları ve zamanlama sorunları düzeltildi.
  • Artık ihtiyaç duyulmayan BroadcastReceiver'lar doğru şekilde boşaltıldı.
  • Uygulamalar zorla kapatıldıktan sonra yeniden başlatıldığında yeniden planlama performansı optimize edildi.
  • Belirtilen WorkRequest kuyruğa alınmadan önce veya sonra TestScheduler.setAllConstraintsMet(UUID) çağrılabilir. b/111238024

Zarar Veren Değişiklikler (Breaking Changes)

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

Sürüm 1.0.0-alpha04

26 Haziran 2018

Hata Düzeltmeleri

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

Sürüm 1.0.0-alpha03

19 Haziran 2018

Hata Düzeltmeleri

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

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

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

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

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

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

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

API Değişiklikleri

  • WorkContinuation.getStatuses()'ın senkronize sürümü olan getStatusesSync() eklendi.
  • Worker, kullanıcı tarafından başlatılan iptal ile işletim sistemi tarafından istenen geçici durdurma arasında ayrım yapabilir. Herhangi bir durdurma isteğinde bulunulduysa Worker.isStopped(), true değerini döndürür. Çalışma açıkça iptal edildiğinde Worker.isCancelled(), true değerini döndürür. b/79632247
  • API 28'de JobParameters#getNetwork() için destek eklendi. Bu, Worker.getNetwork() üzerinden gösterilir.
  • Configuration.Builder.setMaxSchedulerLimit(int maxSchedulerLimit) seçeneği eklendi. Böylece JobScheduler veya AlarmManager'ye kaç iş gönderilebileceğini zorunlu kılabilirsiniz. Bu sayede WorkManager, mevcut tüm JobScheduler yuvalarınızı kullanmaz.
  • WorkManager iş kimliklerinin JobScheduler aralığını tanımlamaya yardımcı olan Configuration.setJobSchedulerJobIdRange(int minJobSchedulerId, int maxJobSchedulerId) eklendi. b/79996760
  • Worker.getRunAttemptCount(), belirli bir Worker için geçerli çalıştırma sayısını döndürür. b/79716516
  • WorkManager.enqueueUniquePeriodicWork(String uniqueWorkName, ExistingPeriodicWorkPolicy existingPeriodicWorkPolicy, PeriodicWorkRequest periodicWork), benzersiz PeriodicWorkRequest'leri sıraya almanıza olanak tanır. b/79600647
  • WorkManager.cancelAllWork(), tüm Worker aboneliklerini iptal eder. WorkManager öğesine bağlı kitaplıklar, dahili durumun ek olarak temizlenmesi için WorkManager.getLastCancelAllTimeMillis() öğesini kullanarak bu yöntemin en son ne zaman çağrıldığını sorgulayabilir.
  • Tamamlanan işlerin dahili veritabanından kaldırılması için WorkManager.pruneWork() düğmesi eklendi. b/79950952, b/109710758

Davranış Değişiklikleri

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

Zarar Veren Değişiklikler (Breaking Changes)

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

Sürüm 1.0.0-alpha02

24 Mayıs 2018

Hata Düzeltmeleri

  • State.isFinished() üzerinde NullPointerException düzeltildi. b/79550068
  • Worker etkinliklerinin Application.onCreate() üzerinde yeniden planlanmasına neden olan sorun düzeltildi. b/79660657
  • İşletim sisteminin izin verdiğinden daha fazla iş planlayabilmenize neden olan sorun düzeltildi. b/79497378
  • Worker ile ilişkili uyandırma kilitlerinin temizlenmesi arka plan iş parçacığına taşındı.
  • AlarmManager uygulaması, bekleyen tüm işler tamamlandığında artık doğru şekilde temizleniyor.
  • İngilizce dışındaki yerel ayarları etkileyen temizleme SQL sorguları düzeltildi. b/80065360
  • Data'de float için destek eklendi. b/79443878
  • Data.Builder.putAll() artık Builder örneğini döndürüyor. b/79699162
  • Javadoc'da ve dokümanlarda daha fazla düzeltme yapıldı. b/79691663

API Değişiklikleri

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

Sürüm 1.0.0-alpha01

8 Mayıs 2018

WorkManager, garantili ve kısıtlamalara duyarlı arka plan görevlerinin planlanmasını ve yürütülmesini kolaylaştırır. Bu ilk sürüm 1.0.0-alpha01.