Önceki derste JobIntentService
sınıfının nasıl oluşturulacağı gösteriliyordu. Bu derste, Intent
ile iş sıraya ekleyerek bir işlemi çalıştırmak için JobIntentService
'yi nasıl tetikleyeceğiniz gösterilmektedir.
Bu Intent
, isteğe bağlı olarak JobIntentService
'in işleyeceği veriler içerebilir.
JobIntentService'e çalışma isteği oluşturma ve gönderme
Bir iş isteği oluşturup JobIntentService
'e göndermek için Intent
oluşturun ve enqueueWork()
çağrısını yaparak yürütülmesi için sıraya ekleyin.
İsteğe bağlı olarak, JobIntentService'in işlemesi için intent'e (intent ekstraları biçiminde) veri ekleyebilirsiniz. Intent oluşturma hakkında daha fazla bilgi için Intent'ler ve Intent Filtreleri başlıklı makalenin Intent oluşturma bölümünü inceleyin.
Aşağıdaki kod snippet'leri bu işlemi göstermektedir:
-
JobIntentService
içinRSSPullService
adlı yeni birIntent
oluşturun.
Kotlin
/* * Creates a new Intent to start the RSSPullService * JobIntentService. Passes a URI in the * Intent's "data" field. */ serviceIntent = Intent().apply { putExtra("download_url", dataUrl) }
Java
/* * Creates a new Intent to start the RSSPullService * JobIntentService. Passes a URI in the * Intent's "data" field. */ serviceIntent = new Intent(); serviceIntent.putExtra("download_url", dataUrl));
-
enqueueWork()
numaralı telefonu arayınKotlin
private const val RSS_JOB_ID = 1000 RSSPullService.enqueueWork(context, RSSPullService::class.java, RSS_JOB_ID, serviceIntent)
Java
// Starts the JobIntentService private static final int RSS_JOB_ID = 1000; RSSPullService.enqueueWork(getContext(), RSSPullService.class, RSS_JOB_ID, serviceIntent);
Çalışma isteğini bir etkinlik veya parçanın herhangi bir yerinden gönderebileceğinizi unutmayın. Örneğin, önce kullanıcı girişi almanız gerekiyorsa isteği, bir düğme tıklamasına veya benzer bir harekete yanıt veren bir geri çağırma işlevinden gönderebilirsiniz.
enqueueWork()
çağrısından sonra,
JobIntentService
onHandleWork()
yönteminde tanımlanan işlemi yapar ve ardından kendini durdurur.
Bir sonraki adım, çalışma isteğinin sonuçlarını kaynak Etkinlik veya Kırıntı'ya bildirmektir. Bir sonraki derste, bunu BroadcastReceiver
ile nasıl yapacağınız gösterilmektedir.