Android 12’de WorkManager Kullanımı

Android Developers Medium — “Using WorkManager on Android 12” yazısının Türkçe çevirisi

Yusuf Anber
Developer MultiGroup
2 min readFeb 3, 2022

--

Merhaba, bu yazı Android Developers Medium sayfasındaki “Using WorkManager on Android 12” yazısının Türkçe çevirisidir.

Yazının orijinaline buradan ulaşabilirsiniz.

Android 12 (API seviyesi 31), foreground servisleri başlatma kısıtlamaları getirir. Bu kısıtlamalarla birlikte, Android 12 veya üstünü hedefleyen uygulamalar, birkaç özel durum dışında, arka planda çalışırken artık ön plan hizmetlerini başlatamaz. Yani, uygulamanızda setForeground()metodunu çağırmak, uygulamanız arkaplanda başlatma kısıtlamalarından muaf bir durumda değilse bir exception’a sebep olabilir.

Bu yüzden WorkManager 2.7'de, arka plan kısıtlamalarına bağlı kalarak önemli işleri planlamak kolaylaştırıldı. Hızlandırılmış işlerlerle (expedited jobs), uygulamalar artık sohbet mesajı göndermek veya bir sosyal ağa resim yüklemek gibi kısa ve yüksek öncelikli görevleri kolayca gerçekleştirebilir. Hızlandırılmış işler, hemen çalıştırılması ve kullanıcı uygulamayı arka plana koysa bile devam etmesi gereken görevleri başlatmanın önerilen yoludur.

İşi hızlandırılmış olarak zamanlamak için work request builder’daki setExpedited() metodunu kullanın:

setExpedited()metodunun çağrılması, framework’e bu çalışmanın önemli olduğunu ve diğer planlanmış çalışmalara göre önceliğe sahip olması gerektiğini bildirir.

Bir OutOfQuotaPolicy() parametresini setExpedited()’e dahil ettiğinize dikkat edin. Hızlandırılmış işler, Uygulama Bekleme Paketlerine (App Standby Buckets) dayalı kotalara tabidir, bu nedenle OutOfQuatoPolicy parametresi WorkManager’a uygulamanız kota dışındayken hızlandırılmış bir işlemi çalıştırmayı denerse ne yapacağını söyler: ya hızlandırılmış work request’i tamamen bırakın.(DROP_WORK_REQUEST), ya da işlemin normal bir work request olarak ele alınmasına geri dönün. (RUN_AS_NON_EXPEDITED_WORK_REQUEST).

Kotaları hızlandırılmış işlemlerinizi yürütmek için zaman sınırları olarak düşünün. Önemli olması sonsuza kadar sürebileceği anlamına gelmez.

Work Manager 2.7 geriye dönük uyumludur ve 12'den eski Android sürümlerinde çalışır. Android 11 veya daha eski bir sürümü çalıştıran bir cihazda set Expedited öğesini çağırırken, Work Manager varsayılan olarak expedited jobs yerine foreground servisleri kullanılır.

WorkManager’ın setExpedited()API’sini çalışırken görmek için resmi WorkManager örneğine ve hızlandırılmış işlerle ilgili dokümanlara göz atabilirsiniz.

Workmanager 2.6 ve WorkManager 2.7 için özel sürüm notlarının yanı sıra resmi sürüm notlarında her WorkManager sürümünde yapılan değişikliklerin ve iyileştirmelerin ayrıntılı bir listesini de görebilirsiniz.

Son olarak, Work Manager ile ilgili herhangi bir özellik isteğiniz veya sorununuz varsa, herkese açık trackera bir sorununuzu bildirmekten çekinmeyin.

Bu ve daha fazla Android içeriği için Android Developers Group Medium hesabını takip edebilir; bize Instagram, Twitter, YouTube ve LinkedIn’den ulaşabilirsiniz!

Kaynak:https://medium.com/androiddevelopers/using-workmanager-on-android-12-f7d483ca0ecb

--

--