Android’te Servis ve Intent Servis

Bu yazılımda Android için önemli olan sevisleri anlatacağım.Yabancı kaynaklardan edinmiş olduğum bilerle payşaşım yapmak istedim.Servis,ana bir sınıftan alınarak yapılan bir imlementasyon iken.Bu class içerisinde threadlar çalışmaktadır.Interservice’ler ise işlemleri daha kolay bir şekilde gerçekleştirilir.Servis sınıfının alt sınıfıdır.Intentler ve servisler arkaplanda bir işlemi gerçekleştirmek için kullanılmaktadır.

       IntentService instance bir kez çalıştıktan sonra otomatik olarak işlemi gerçekleştirdikten sonra sonlanır.Örneğin bir uygulamanın güncellenme işlemi uygulama arka planda güncellendikten sonra sonlanmaktadır.

Farkları

  1. IntentServicei, servis çalıştırılacağı bir thread oluşturur ve bu threadi kullanarak işlemini gerçekleştirir.Servis ise uygulamanın ana thread’ini kullanır.

  2. IntentService bir kuyruk oluşturur ve onHandler() metotdu ile intentler birer birer kuyruğa eklenir.Servis sınıfındaki threadler implemente edilmektedir.Otomatik durdurmak için yada kuyrukta işlencek veriler kalmayınca sonladırmak için stopSelf() veya stopService() metotları kullanılır.

  3. IntentServis’te onBind() metodu varsayılan değer olarak null değeri döndürmektedir.

Kullanımları

Arkaplanda iş yapılmak istendiğinde ve bu iş belli bir süre sonra kaptılmasını gerek duyulursa ve bu iş çok kısa değilse IntentServis kullanılır.

İletişim olmadan uzun soluklu işler için için Servis kullanılır.İletişim kullanımına gerek duyulduğu durumlarda ise broadcast intentler veya ana thread handleri kullanmalıdır.

Tetiklenmesi Nasıl Gerçekleşir ?

Service onStartService() metodu çağrılarak tetiklenir.
IntentService, intent kullanılarak tetiklenir. Yeni bir çalışan thread oluşturulur ve onHandleIntent() metodunda bu thread çağrılır.

Kim tarafından tetiklenir?
Service herhangi bir thread tarafından tetiklenebilir.
IntentService ana thread tarafından tetiklenmelidir.
Nerede çalışır?
Service uygulamanın ana threadi üzerinde fakat arka planda çalışır.
IntentService farklı threadler üzerinde çalışır.
Sınırlamalar / Dezavantajları
Service uygulamanın ana threadinden bloklanır.
IntentService paralel taskları çalıştıramaz. Böylece tüm intentler çalışan bir threadin mesaj kuyruğuna girer sıra ile çalıştırılır.

Facebook Twitter Email Tumblr Digg

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir