Android Arka Plan Servisleri – Background Services

Merhaba bu yazımda size android servislerinden bahsedeceğim. Android ilk sürümlerine göre daha da güvenilir hale gelmeye devam ediyor. Telefonunuzun sadece size ait olması bilgilerinizi sadece size bağlıyor.

Bilgilerinizi paylaşmak istemezsiniz değil mi?

Android geçmişe nazaran daha güvenli çünkü arka planda servis işlemlerini oldukça kısıtlıyor. Eskiden gelişi güzel her uygulama servisleri istediği kadar çalıştırabilirdi. “Bir servis çalışsa ne olur” demeyin çünkü birkaç servis aynı anda internetten veri almak isterse sizin internet hızınızı dahi etkileyebilir.

Önceden nasıldı?

Önceden yani API 25’e kadar (Nougat 7.1) servisler çalıştırılabilir ve kullanilabilirdi. Kısıtlamalar bulunuyordu fakat yeterli değildi.

Ne kadar güvenilir?

Facebook reklamlarını bizim verilerimiz aracılığı ile filtreleyerek bize gösteriyor. Arka plandaki servisleri ne kadar iyi ve sadece uygulamasının amacı için kullana geliştiriciler olsada verilerimizi tehlikeye atabilecek servisler de bulunuyor. Ve iyi kötü demeden bu servis engeli tüm geliştiricileri etkiliyor. Androidin son sürümündeki değişiklikleri Buradan okuyabilirsiniz.

Ne kullanmalıyım?

Android bu konuda yeterince açık cevap vermesede servislerin biraz değişiği olan JobServisleri kullanmamızı öneriyor. JobServislerin sıradan servislerden farkı ise istediğimiz sürede yada belirtilen durumlarda (örneğin internete bağlanıldığında) çalışması.

Bu tür filtrelemeler ile uzun soluklu BroadcastReceiver kullanmış olacağız diyebiliriz. Fakat JobService verilen süre aralığında çalışmayabilir. Sebebi çalışmanızı istediğiniz an pil gücü yeterli değilse, ram dolu ise veya yeteri kadar servis çalışıyor ise cihanızın sağlığı için sistem servisin çalışmasını engelliyor.

Kullanım Örneği

Developer Android dökümanlarına Buradan ulaşabilirsiniz.

Örnek olarak ise;

JobScheduler jobScheduler =
    (JobScheduler) getSystemService(Context.JOB_SCHEDULER_SERVICE);
jobScheduler.schedule(new JobInfo.Builder(LOAD_ARTWORK_JOB_ID,
    new ComponentName(this, DownloadArtworkJobService.class))
    .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
    .build());

Network type (internet tipi)

Eğer JobServisiniz internet bağlantısı gerektiriyorsa izin almak için bunu eklemelisiniz. Aksi takdirde bağlantı yapmayacağınız anlamına gelir.

Charging Type

Eğer çok fazla işlem gerçekleştireceksiniz bunu cihaz şarja bağlı iken yapmanız önerilir.

Periodic

Bu en çok tutulan özelliğidir çünkü bir nevi alarm manager’ın basite indirgenmiş halidir. Belirtilen süre içinde kendini tekrar ederek çalışır.

Persistend

Yeniden başlatma sonrasında çalışması için kullanılabilir. Bununla birlikte, uygulamanızın çalışması için RECEIVE_BOOT_COMPLETED izni gerekir.

Photo of author

Mehmet Kurtgöz

Android Developer.

“Android Arka Plan Servisleri – Background Services” üzerine bir yorum

  1. Her ne kadar servislerin çalışması kısıtlansa da bunu kısıtlayan kit içerisinde bir zararlı yerleştirilebilir. Tersine mühendislik her zaman kazanır. (android sonsuza dek güvenli olmayacak)

    Cevapla

Yorum yapın