ঘোষনাঃ
সম্মানীত সদস্যবৃন্দ, আপনাদের অবগতির জন্য জানানো যাচ্ছে যে, এআই ব্যবহার করে প্রশ্নের উত্তর দেওয়ার কারণে সাইটের র‌্যাংক কমে গেছে। তাই এআই উত্তর আর অনুমোদন দেওয়া হবে না।
71 বার দেখা হয়েছে
"এন্ড্রোয়েড অ্যাপস" বিভাগে করেছেন

1 টি উত্তর

0 জনের পছন্দ 0 জনের অপছন্দ
করেছেন

অ্যান্ড্রয়েড অ্যাপ্লিকেশন ডেভেলপমেন্টে Background Process বা Service এবং Broadcast Receiver একটি গুরুত্বপূর্ণ ভূমিকা পালন করে। এগুলো একসঙ্গে কাজ করতে পারে অ্যাপ্লিকেশনটির কার্যকারিতা এবং ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে।


Service:

Service হলো একটি কম্পোনেন্ট যা ব্যাকগ্রাউন্ডে কাজ সম্পন্ন করতে ব্যবহৃত হয়। এটি UI ছাড়াই কাজ করে এবং প্রধানত লং-রানিং টাস্ক বা ব্যাকগ্রাউন্ড কার্যকলাপের জন্য ব্যবহৃত হয়, যেমন:

  • ডেটা সিঙ্ক করা।
  • API কল করা এবং ডেটা ডাউনলোড করা।
  • মিউজিক প্লেয়ার চালানো।

Service এর ধরণ:

  1. Foreground Service:

    • ব্যবহারকারীকে নোটিফিকেশন দিয়ে জানানো হয় যে একটি সেবা চলছে।
    • যেমন, মিউজিক প্লেয়ার, ডাউনলোড ম্যানেজার।
  2. Background Service:

    • এটি ব্যাকগ্রাউন্ডে কাজ করে এবং ব্যবহারকারীর সরাসরি নজরে আসে না।
    • অ্যান্ড্রয়েড 8.0 (Oreo) থেকে ব্যাকগ্রাউন্ডে চলা সার্ভিসের উপর সীমাবদ্ধতা আরোপ করা হয়েছে।
  3. Bound Service:

    • এটি অ্যাপ্লিকেশনের অন্যান্য কম্পোনেন্টের সাথে সংযুক্ত থাকে এবং ইন্টারঅ্যাকশন করতে পারে।

Service তৈরি ও ব্যবহার:

public class MyService extends Service {
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        // Background Task
        return START_STICKY;
    }

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }
}

Service শুরু করা:

Intent serviceIntent = new Intent(this, MyService.class);
startService(serviceIntent);

Broadcast Receiver:

Broadcast Receiver হলো একটি কম্পোনেন্ট যা অ্যান্ড্রয়েড সিস্টেম বা অন্য অ্যাপ্লিকেশন থেকে ব্রডকাস্ট করা মেসেজ গ্রহণ করে। এটি নির্দিষ্ট ইভেন্টের প্রতি প্রতিক্রিয়া জানাতে ব্যবহৃত হয়, যেমন:

  • ডিভাইস বুট হওয়া।
  • ব্যাটারি স্তর পরিবর্তন।
  • নেটওয়ার্ক কানেকশন পরিবর্তন।

Broadcast Receiver তৈরি ও ব্যবহার:

public class MyReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        // Handle broadcast message
    }
}

Manifest ফাইলে রেজিস্টার করা:

<receiver android:name=".MyReceiver">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED"/>
    </intent-filter>
</receiver>

প্রোগ্রামেটিকভাবে রেজিস্টার করা:

IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(myReceiver, filter);

Service এবং Broadcast Receiver এর সংযোগ:

Service এবং Broadcast Receiver একসঙ্গে কাজ করে বিভিন্ন কার্যক্রম সম্পাদন করতে পারে। উদাহরণস্বরূপ:

  1. Broadcast Receiver এর মাধ্যমে Service শুরু করা:

    • যখন একটি নির্দিষ্ট ইভেন্ট ঘটে (যেমন BOOT_COMPLETED), তখন Broadcast Receiver সেই ইভেন্ট ধরে Service শুরু করতে পারে।
    public class MyReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            Intent serviceIntent = new Intent(context, MyService.class);
            context.startService(serviceIntent);
        }
    }
    
  2. Service এর মাধ্যমে Broadcast পাঠানো:

    • Service থেকে Broadcast পাঠানো যেতে পারে Broadcast Receiver দ্বারা গ্রহণের জন্য।
    Intent intent = new Intent("com.example.MY_CUSTOM_ACTION");
    sendBroadcast(intent);
    
  3. Real-time Communication:

    • Service থেকে কাজ সম্পন্ন করার পর Broadcast Receiver-এ একটি Broadcast পাঠিয়ে অ্যাপ্লিকেশনকে জানানো যেতে পারে।

সতর্কতা ও সীমাবদ্ধতা:

  • ব্যাটারি অপ্টিমাইজেশনের জন্য অ্যান্ড্রয়েড 8.0 (Oreo) এবং তার পরের সংস্করণে ব্যাকগ্রাউন্ড সার্ভিস এবং ব্রডকাস্ট রিসিভারে বেশ কিছু সীমাবদ্ধতা আছে।
  • WorkManager বা JobScheduler ব্যবহার করা ভালো বিকল্প হতে পারে যদি কাজটি সময়-নির্ভর হয়।

আপনার নির্দিষ্ট প্রজেক্ট বা কেস অনুযায়ী কোডের উদাহরণ এবং সমাধান প্রয়োজন হলে জানাতে পারেন।

এরকম আরও কিছু প্রশ্ন

2 টি উত্তর
0 টি উত্তর
0 টি উত্তর
0 টি উত্তর

36,000 টি প্রশ্ন

35,265 টি উত্তর

1,738 টি মন্তব্য

3,753 জন সদস্য

Ask Answers সাইটে আপনাকে সুস্বাগতম! এখানে আপনি প্রশ্ন করতে পারবেন এবং অন্যদের প্রশ্নে উত্তর প্রদান করতে পারবেন ৷ আর অনলাইনে বিভিন্ন সমস্যার সমাধানের জন্য উন্মুক্ত তথ্যভাণ্ডার গড়ে তোলার কাজে অবদান রাখতে পারবেন ৷
4 জন অনলাইনে আছেন
0 জন সদস্য, 4 জন অতিথি
আজকে ভিজিট : 15284
গতকাল ভিজিট : 17493
সর্বমোট ভিজিট : 51887634
এখানে প্রকাশিত সকল প্রশ্ন ও উত্তরের দায়ভার কেবল সংশ্লিষ্ট প্রশ্নকর্তা ও উত্তর দানকারীর৷ কোন প্রকার আইনি সমস্যা Ask Answers কর্তৃপক্ষ বহন করবে না৷
...