Servis nedir?

Uygulamamızın kapatıldığında dahi arka planda çalışacak olan kodlar için servisler kullanılmaktadır. Örneğin bir alarm uygulaması düşünelim. Alarm ayarlanır, uygulama kapatılır fakat yine de alarm zamanı geldiğinde çalışır. Bu arkaplanda çalışan servisler aracılığıyla yapılabilir. Bu verdiğim örnek küçük bir örnekti. Arka planda çalışan facebook uygulamasını, mail uygulamasını da düşünebilirsiniz. Yeni mesaj geldiğinde, bildirim geldiğinde size uyarı verir. Bu da yine servisler aracılığıyla yapılmaktadır.

Yeni bir android projesi oluşturalım.

Bu görselin özgün dosyasına şu anda erişilemiyor.
Bu görselin özgün dosyasına şu anda erişilemiyor.

Servis için yeni bir class oluşturmamız gerekiyor. Bu classı service sınıfından extend edip kullanacağız.

Bu görselin özgün dosyasına şu anda erişilemiyor.

Sağ tıklayıp classımızı oluşturalım.

Bu görselin özgün dosyasına şu anda erişilemiyor.
Bu görselin özgün dosyasına şu anda erişilemiyor.

Sınıfı extend ediyoruz ve zorunlu methodlarını ekliyoruz. (Add unimplemented methods)

Sınıfımızın methodlarını source-override... menü komutundan ekleyebiliriz. Oncreate methodunu ekleyelim.

Bu görselin özgün dosyasına şu anda erişilemiyor.

Onclick methoduna servisin başlatıldığına dair uyarı veren kodumuzu yazalım.

Toast.makeText(getApplicationContext(), "Servis başlatıldı", 3000).show();

Activitymiz içerisine bir buton koyup butona tıklatıldığında servisin başlamasını sağlayalım. Main.xml dosyasını açıp button1 adlı butonu ekliyorum. Buttonu ekledikten sonra activitymize butonu tanımlayıp butonun tıklanması olayında servisimizi başlattıralım.

Button button1=(Button)findViewById(R.id.button1);

button1.setOnClickListener(new View.OnClickListener() {

    public void onClick(View v) {

        // TODO Auto-generated method stub

        startService(new Intent(getApplicationContext(),servisim.class));

        //servisi başlatan kodumuz.

    }

});

Android manifest xml dosyasında da servisimizi tanımlamamız gerekiyor. Application tagleri arasına servise taglerini ekliyoruz.

Bu görselin özgün dosyasına şu anda erişilemiyor.

Servisi durdurmak için ayrı bir düğme ekleyip stopService... komutunu uygulayabiliriz. Aynen startservice komutu gibi. Start yerine stop yazılacak...

Kaynaklar