ব্যাকগ্রাউন্ড পরিষেবায় কাজের অনুরোধ পাঠান

আগের লেসনে আপনি শিখেছেন কীভাবে JobIntentService ক্লাস তৈরি করতে হয়। এই টিউটোরিয়াল থেকে আপনি জানতে পারবেন যে কীভাবে Intent-এর মাধ্যমে কাজ এনকিউ করে অপারেশন চালানোর জন্য JobIntentService ট্রিগার করতে হয়। এই Intent-এ ঐচ্ছিকভাবে JobIntentService-এর প্রসেস করার জন্য ডেটা থাকতে পারে।

JobIntentService-এ কাজের অনুরোধ তৈরি করে পাঠান

কাজের অনুরোধ তৈরি করে সেটি JobIntentService-এ পাঠাতে, একটি Intent তৈরি করুন এবং enqueueWork() কল করে সেটি কার্যকর করার জন্য সারিবদ্ধ করুন। JobIntentService-এর প্রসেস করার জন্য আপনি ইনটেন্টে (ইনটেন্ট এক্সট্রা হিসেবে) ডেটা যোগ করতে পারেন। ইনটেন্ট তৈরি করার ব্যাপারে আরও জানতে, ইনটেন্ট ও ইনটেন্ট ফিল্টার লিঙ্কে গিয়ে ইনটেন্ট তৈরি করা বিভাগটি পড়ুন

নিম্নলিখিত কোড স্নিপেট এই প্রসেসটি দেখায়:

  1. RSSPullService নামের JobIntentService-এর জন্য নতুন Intent তৈরি করুন।

    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)
    }

    জাভা

    /*
     * 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));
  2. enqueueWork()
    -এ কল করুন

    Kotlin

    private const val RSS_JOB_ID = 1000
    RSSPullService.enqueueWork(context, RSSPullService::class.java, RSS_JOB_ID, serviceIntent)

    জাভা

    // Starts the JobIntentService
    private static final int RSS_JOB_ID = 1000;
    RSSPullService.enqueueWork(getContext(), RSSPullService.class, RSS_JOB_ID, serviceIntent);

মনে রাখবেন, আপনি অ্যাক্টিভিটি বা ফ্র্যাগমেন্টের যেকোনও জায়গা থেকে কাজের অনুরোধ পাঠাতে পারবেন। যেমন, প্রথমে ব্যবহারকারীর ইনপুট প্রয়োজন হলে, আপনি কলব্যাক থেকে অনুরোধ পাঠাতে পারেন যা বোতাম ক্লিক বা একই ধরনের জেসচারের উত্তর দেয়।

আপনি enqueueWork() কল করলে, JobIntentService তার onHandleWork() পদ্ধতিতে নির্ধারিত কাজ করে এবং তারপর নিজে থেকেই বন্ধ হয়ে যায়।

পরবর্তী ধাপ হল, যে অ্যাক্টিভিটি বা ফ্র্যাগমেন্ট থেকে কাজের অনুরোধ এসেছে, সেখানে কাজের ফলাফল রিপোর্ট করা। পরবর্তী পাঠে দেখানো হয়েছে যে কীভাবে BroadcastReceiver-এর মাধ্যমে এটি করা যায়।