Mobil Programlama

Android

İş İsteklerini Arka Plan Servisine Göndermek

Lisans: Creative Commons 26.11.2020 tarihinde güncellendi
Bakabileceğiniz Etiketler: Eğitmen: Geleceği Yazanlar Ekibi

Bir önceki eğitim içeriğimizde birlikte IntentService sınıfının nasıl oluşturulduğunu gördük. O belgeyi okumadan burayı okumaya başlamanızı önermiyoruz. Bu belgedeyse bir arka plan işlemini çalıştırma amacıyla Intent göndererek bir IntentService'i nasıl tetikleyeceğinizi göreceksiniz. Göndereceğiniz bu Intent, isterseniz IntentService'in yapacağı işle ilgili ekstra veri de içerebilir. Bu Intent'i bir Activity ya da Fragment'ın herhangi bir yerinde gönderebilirsiniz.

 

IntentService'e iş istekleri oluşturmak ve göndermek

Bir iş isteği oluşturmak ve onu bir IntentService'e göndermek için öncelikle adresi belli (explicit) bir Intent oluşturmalıyız. Ardından bu Intent'e iş isteğiyle ilgili verileri eklemeliyiz ve son olarak da startService() metoduna ekleyip IntentService'e göndermeliyiz.

Aşağıdaki kod parçacığı bunu nasıl yapacağınızı gösteriyor:

  1. RSSPullService adını verdiğiniz IntentService için adresi belli yeni bir Intent oluşturuyoruz:
    
    /*
     * RSSPullService isimli IntentService'i
     * başlatacak yeni bir Intent oluşturur.
     * Ek olarak Intent'in "data" alanına bir URI
     * verisi ekler
     */
    mServiceIntent = new Intent(getActivity(), RSSPullService.class);
    mServiceIntent.setData(Uri.parse(dataUrl));
  2. startService() metodunu çağırıyoruz ve IntentService'i başlatıyoruz:
    getActivity().startService(mServiceIntent);

İş isteklerini Activity'nin veya Fragment'ın herhangi bir yerinden gönderebildiğinizi unutmamalısınız. Örneğin, öncelikle kullanıcı girişine ihtiyacınız varsa, bir düğme tıklamasına vs. yanıt verecek bir callback metoduna istek gönderebilirsiniz. Bir kere startService() metodunu çağırdığınızda, IntentService, onHandleIntent() metoduna tanımlı işi yapacaktır ve ardından duracaktır.

Bundan sonraki adım ise iş isteğinin sonucunu Activity ya da Fragment'e döndürmek. Sıradaki eğitim içeriği BroadCastReceiver kullanarak bunu nasıl yapacağınızı gösteriyor.

 

Bu sayfadaki parçalar Android Open Source Project kapsamında oluşturulmuş ve paylaşılmış içeriğin küçük değişiklikler yapılmış hâlidir ve Creative Commons 2.5 Attribution License'ta belirlenen koşullara göre kullanılmıştır.

Bu eğitim içeriğinin orijinal hâline buradan ulaşabilirsiniz: Sending Work Requests to the Background Service