Background: মৌলিক বিষয়, iOS এবং Android এ অ্যাপের পটভূমিতে কাজ করা

লেখক: IT Sectr প্রকাশিত: 2026-03-03 পড়ার সময়: 10 মিনিট

Background হল অ্যাপ জীবনচক্রের একটি অবস্থা যেখানে এটি চলতে থাকে কিন্তু স্ক্রিনে প্রদর্শিত হয় না। আমরা iOS এবং Android এ পটভূমি কাজের মৌলিক বিষয় ব্যাখ্যা করি: সীমাবদ্ধতা, সময়সীমা, beginBackgroundTask, WorkManager এবং Service এর মাধ্যমে পটভূমি কাজ, সেইসাথে Background সঠিকভাবে পরিচালনার জন্য সর্বোত্তম অনুশীলন।

মূল বিষয়

  • Background — অ্যাপ ব্যবহারকারীর কাছে দৃশ্যমান নয় কিন্তু সীমিত সময়ের জন্য কোড কার্যকর করতে পারে
  • iOS পটভূমি কাজ — beginBackgroundTask(expirationHandler:) কাজ শেষ করতে 30 সেকেন্ড পর্যন্ত সময় দেয়
  • Android Service — দীর্ঘ পটভূমি কার্যক্রমের জন্য বিজ্ঞপ্তি সহ Foreground Service
  • WorkManager — নির্বাহের নিশ্চয়তা সহ Android এ পটভূমি কাজের জন্য প্রস্তাবিত API
  • সীমাবদ্ধতা — ব্যাটারি বাঁচাতে উভয় প্ল্যাটফর্ম পটভূমি কাজের নিয়ম কঠোর করে

Background — পটভূমি অবস্থার মৌলিক বিষয়

Background হল অ্যাপের এমন একটি অবস্থা যেখানে এটি অপারেটিং সিস্টেমে বিদ্যমান থাকে, কোড কার্যকর করে এবং সম্পদ ব্যবহার করে, কিন্তু ডিভাইস স্ক্রিনে প্রদর্শিত হয় না। ব্যবহারকারী হোম স্ক্রিনে, অন্য অ্যাপে আছে, বা ডিভাইসের স্ক্রিন লক করা আছে। iOS এ, Background Inactive এর পরে আসে — পরিবর্তন শৃঙ্খল: Active → Inactive → Background। Android এ, onStop Activity এর Background এ স্থানান্তর নির্দেশ করে।

উভয় প্ল্যাটফর্ম পটভূমি কাজের উপর কঠোর বিধিনিষেধ আরোপ করে। iOS Background এ প্রবেশের পরে কোড কার্যকর করার জন্য একটি সীমিত উইন্ডো (সাধারণত 30 সেকেন্ড) প্রদান করে, তারপর অ্যাপ Suspended এ স্থানান্তরিত হয়। Android বেশি নমনীয়: দৃশ্যমান বিজ্ঞপ্তি সহ Foreground Service অনির্দিষ্টকাল চলতে পারে, কিন্তু সাধারণ Background Service কয়েক মিনিটের মধ্যে সীমিত। ডেভেলপারের মূল কাজ হল সঠিকভাবে অবস্থা সংরক্ষণ করা এবং সিস্টেম পটভূমি কাজ API এর মাধ্যমে কাজ চালিয়ে যাওয়ার সময়সূচী করা।

সিস্টেম মেমরি কম হলে যেকোনো সময় পটভূমি অ্যাপ শেষ করতে পারে। শেষ হলে, সমস্ত অসংরক্ষিত ডেটা হারিয়ে যায়। তাই applicationDidEnterBackground (iOS) বা onStop (Android) এ অবস্থা সংরক্ষণ করা অত্যন্ত গুরুত্বপূর্ণ। শেষ হওয়ার পর, পরবর্তী লঞ্চ Not Running থেকে কোল্ড স্টার্ট দিয়ে শুরু হয় এবং সংরক্ষিত অবস্থা পুনরুদ্ধার করে।

Background বনাম Suspended

Background এবং Suspended এর মধ্যে পার্থক্য করা গুরুত্বপূর্ণ। Background — অ্যাপ সক্রিয়ভাবে কোড কার্যকর করছে। Suspended — অ্যাপ মেমরিতে আছে কিন্তু কোড কার্যকর করছে না — এটি হিমায়িত। iOS এ, অ্যাপ পটভূমি কাজ শেষ করার পর Background থেকে Suspended এ যায়। Android এ Suspended নেই — প্রক্রিয়াটি হয় বিদ্যমান (Background সহ) অথবা শেষ (Not Running)। তবে, Android LMK (Low Memory Killer) এর মাধ্যমে থ্রেড নির্বাহ স্থগিত করতে পারে।

বৈশিষ্ট্যiOS BackgroundAndroid Background
কোড কার্যকর হয়হ্যাঁ, 30 সেকেন্ড পর্যন্তহ্যাঁ, API এর উপর নির্ভর করে
UI দৃশ্যমাননানা
ডিফল্ট সময়সীমা~30 সেকেন্ড (beginBackgroundTask)কয়েক মিনিট (Service)
অসীম কাজশুধুমাত্র বিশেষ বিভাগ (অডিও, VoIP, নেভিগেশন)বিজ্ঞপ্তি সহ Foreground Service
নির্বাহের নিশ্চয়তানা — সিস্টেম যেকোনো সময় শেষ করতে পারেWorkManager নির্বাহের নিশ্চয়তা দেয়
অনুমতি প্রয়োজনহ্যাঁ — Info.plist এ capabilitiesহ্যাঁ — FOREGROUND_SERVICE অনুমতি
পরবর্তী অবস্থাSuspended → Not RunningNot Running (অথবা পুনরায় চালু)

iOS এ Background: Swift, beginBackgroundTask এবং BGTaskScheduler

iOS এ, Background ডেলিগেট পদ্ধতি applicationDidEnterBackground এর মাধ্যমে পরিচালিত হয়। এই পদ্ধতিতে, ডেভেলপারকে ব্যবহারকারীর অবস্থা সংরক্ষণ করতে হবে, সম্পদ মুক্ত করতে হবে এবং পটভূমি কাজ সম্পূর্ণ করতে হবে। Background এ প্রবেশের পরে কোড কার্যকর করতে, beginBackgroundTask(expirationHandler:) ব্যবহার করা হয় — একটি API যা সিস্টেম থেকে অতিরিক্ত সময় (সাধারণত 30 সেকেন্ড) অনুরোধ করে। যদি কাজ এই সময়ের মধ্যে সম্পূর্ণ না হয়, তাহলে expirationHandler কল করা হয়, এবং অ্যাপ জোর করে Suspended এ স্থানান্তরিত হয়।

iOS 13 এর সাথে, Apple BGTaskScheduler চালু করেছে — পটভূমি কাজ সময়সূচী করার জন্য একটি আধুনিক API। beginBackgroundTask এর বিপরীতে, যা পটভূমিতে যাওয়ার পরে শুধুমাত্র শেষ করার সময় দেয়, BGTaskScheduler ভবিষ্যতে কাজ নির্বাহের সময়সূচী করার অনুমতি দেয় — উদাহরণস্বরূপ, প্রতি ঘন্টায় একবার সামগ্রী আপডেট করা বা রাতে বিশ্লেষণ আপলোড করা। BGTaskScheduler নতুন প্রকল্পের জন্য প্রস্তাবিত পদ্ধতি, কারণ এটি ব্যাটারির দিক থেকে বেশি কার্যকর।

swift
import UIKit
import BackgroundTasks

@main
class AppDelegate: UIResponder, UIApplicationDelegate {

    var backgroundTaskID: UIBackgroundTaskIdentifier = .invalid

    // অ্যাপ পটভূমিতে গেছে — পটভূমি কাজ শুরু করছি
    func applicationDidEnterBackground(_ application: UIApplication) {
        saveAppState()
        startBackgroundTask()
    }

    private func startBackgroundTask() {
        backgroundTaskID = UIApplication.shared.beginBackgroundTask { [weak self] in
            // সময় শেষ — জোর করে শেষ করছি
            self?.endBackgroundTask()
        }

        // পটভূমি কাজ অনুকরণ (সার্ভারে ডেটা সংরক্ষণ)
        DispatchQueue.global().async { [weak self] in
            uploadAnalyticsData()
            self?.endBackgroundTask()
        }
    }

    private func endBackgroundTask() {
        guard backgroundTaskID != .invalid else { return }
        UIApplication.shared.endBackgroundTask(backgroundTaskID)
        backgroundTaskID = .invalid
    }

    // BGTaskScheduler নিবন্ধন
    func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {
        BGTaskScheduler.shared.register(
            forTaskWithIdentifier: "com.example.refresh",
            using: nil
        ) { task in
            handleAppRefresh(task: task as! BGAppRefreshTask)
        }
        return true
    }

    func scheduleAppRefresh() {
        let request = BGAppRefreshTaskRequest(identifier: "com.example.refresh")
        request.earliestBeginDate = Date(timeIntervalSinceNow: 3600)
        try? BGTaskScheduler.shared.submit(request)
    }

    func handleAppRefresh(task: BGAppRefreshTask) {
        scheduleAppRefresh()
        task.expirationHandler = { task.setTaskCompleted(success: false) }
        fetchLatestData { result in
            task.setTaskCompleted(success: result)
        }
    }
}

কোডটি iOS এ সম্পূর্ণ Background প্রক্রিয়াকরণ দেখায়। applicationDidEnterBackground টাইমআউট এবং expirationHandler সহ beginBackgroundTask এর মাধ্যমে একটি পটভূমি কাজ শুরু করে। একই সাথে, BGTaskScheduler পর্যায়ক্রমিক সামগ্রী আপডেটের জন্য নিবন্ধিত হয়। beginBackgroundTask তাৎক্ষণিক শাটডাউন কাজের জন্য ব্যবহৃত হয়, BGTaskScheduler দীর্ঘমেয়াদী পরিকল্পনার জন্য ব্যবহৃত হয়। উভয় API এর কাজের শনাক্তকারীর সঠিক ব্যবস্থাপনা প্রয়োজন।

Android এ Background: Kotlin, Service, WorkManager

Android এ, Background একাধিক API এর মাধ্যমে পরিচালিত হয়।ঐতিহ্যগত Service পটভূমিতে কোড কার্যকর করার অনুমতি দেয়, কিন্তু Android 8+ (API 26) থেকে, Background Service সীমিত: অ্যাপ পটভূমিতে যাওয়ার কয়েক মিনিট পরে সিস্টেম এটি শেষ করে। একটি স্থায়ী বিজ্ঞপ্তি সহ Foreground Service অনির্দিষ্টকাল চলতে পারে। WorkManager ডিভাইস রিবুটের পরেও নির্বাহের নিশ্চয়তা সহ পটভূমি কাজের জন্য প্রস্তাবিত সমাধান।

Android, iOS এর বিপরীতে, দীর্ঘস্থায়ী পটভূমি প্রক্রিয়া সমর্থন করে। Foreground Service ব্যবহার করা হয় এমন কাজের জন্য যা ব্যবহারকারীর দেখা উচিত — সঙ্গীত বাজানো, নেভিগেশন, ওয়ার্কআউট ট্র্যাকিং। JobScheduler এবং WorkManager ব্যবহার করা হয় এমন কাজের জন্য যা স্থগিত করা যেতে পারে: ডেটা সিঙ্ক্রোনাইজেশন, লগ আপলোড, ক্যাশ আপডেট। মূল পার্থক্য: Android শর্ত সহ কাজ সময়সূচী করার অনুমতি দেয় — Wi-Fi, চার্জিং, ডিভাইস নিষ্ক্রিয়তা — যা ব্যাটারি এবং ট্রাফিক বাঁচায়।

kotlin
import android.app.Service
import android.content.Intent
import android.os.IBinder
import androidx.work.*

// 1. দীর্ঘ পটভূমি কাজের জন্য Foreground Service
class SyncService : Service() {

    override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
        val notification = createNotification()
        startForeground(NOTIFICATION_ID, notification)
        performBackgroundWork()
        return START_STICKY
    }

    private fun performBackgroundWork() {
        Thread {
            // সার্ভারের সাথে ডেটা সিঙ্ক্রোনাইজেশন
            syncDataToServer()
            stopForeground(STOP_FOREGROUND_REMOVE)
            stopSelf()
        }.start()
    }

    override fun onBind(intent: Intent?): IBinder? = null
}

// 2. স্থগিত পটভূমি কাজের জন্য WorkManager
class DataSyncWorker(
    private val context: Context,
    private val params: WorkerParameters
) : CoroutineWorker(context, params) {

    override suspend fun doWork(): Result {
        return try {
            // সার্ভারে বিশ্লেষণ আপলোড
            uploadAnalytics()
            Result.success()
        } catch (e: Exception) {
            if (runAttemptCount < 3) Result.retry() else Result.failure()
        }
    }
}

// WorkManager কাজের সময়সূচী
fun scheduleBackgroundSync(context: Context) {
    val constraints = Constraints.Builder()
        .setRequiredNetworkType(NetworkType.CONNECTED)
        .setRequiresBatteryNotLow(true)
        .build()

    val request = OneTimeWorkRequestBuilder<DataSyncWorker>()
        .setConstraints(constraints)
        .setBackoffCriteria(BackoffPolicy.EXPONENTIAL, 30, TimeUnit.SECONDS)
        .build()

    WorkManager.getInstance(context).enqueue(request)
}

কোডটি Android এ পটভূমি কাজের দুটি পদ্ধতি দেখায়। SyncService — তাৎক্ষণিক এবং দীর্ঘ পটভূমি কাজের জন্য বিজ্ঞপ্তি সহ Foreground Service। DataSyncWorker — শর্ত (Wi-Fi, চার্জিং) সহ স্থগিত কাজের জন্য WorkManager। WorkManager ডিভাইস রিবুটের পরেও নির্বাহের নিশ্চয়তা দেয় এবং পুনরায় চেষ্টার জন্য এক্সপোনেনশিয়াল ব্যাকঅফ সমর্থন করে। Foreground Service স্ট্যাটাস বারে একটি স্থায়ী বিজ্ঞপ্তি প্রয়োজন।

iOS এবং Android এ পটভূমি কাজের সীমাবদ্ধতা

উভয় মোবাইল প্ল্যাটফর্ম ক্রমাগত পটভূমি কাজের নিয়ম কঠোর করছে। iOS এ, OS এর প্রতিটি নতুন প্রজন্ম পটভূমি নির্বাহের সময় কমায় এবং নতুন বিধিনিষেধ যোগ করে। Android এ, Google ক্রমশ কঠোর পাওয়ার সেভিং মোড (Doze, App Standby) চালু করছে। ডেভেলপারদের বর্তমান সীমাবদ্ধতা সম্পর্কে আপডেট থাকা উচিত যাতে অ্যাপ সিস্টেম দ্বারা অকালে শেষ না হয়।

iOS এ, iOS 13 থেকে শুরু করে, সিস্টেম সেই অ্যাপগুলির জন্য পটভূমি কাজ নিষ্ক্রিয় করে যা পটভূমি সময়ের অপব্যবহার করে। প্রতিটি অ্যাপ ব্যবহারকারীর আচরণের ভিত্তিতে নির্দিষ্ট সীমা পায়। BGTaskScheduler সর্বোত্তম সময়ে নির্বাহের সময়সূচী করে — উদাহরণস্বরূপ, যখন ডিভাইস Wi-Fi এর সাথে সংযুক্ত এবং চার্জ হচ্ছে। যে অ্যাপগুলি BGTaskScheduler সঠিকভাবে ব্যবহার করে তারা আরও পটভূমি সময় পায়।

Android এ, Android 9 (API 28) থেকে শুরু করে, পটভূমি কাজ Doze মোড দ্বারা সীমাবদ্ধ, যা ডিভাইস নিষ্ক্রিয় হলে সক্রিয় হয়। Doze এ অ্যাপগুলি পটভূমি কাজ করতে পারে না, নেটওয়ার্ক সংযোগ বিচ্ছিন্ন হয়, JobScheduler এবং WorkManager Doze থেকে বের না হওয়া পর্যন্ত কাজ স্থগিত করে। Foreground Service Doze এড়ানোর একমাত্র উপায়, কিন্তু অপব্যবহার করলে অ্যাপ ব্যবহারকারী দ্বারা ব্লক হয় এবং অনুমতি প্রত্যাহার করা হয়।

সীমাবদ্ধতাiOSAndroid
পটভূমি কাজের সময়সীমা~30 সেকেন্ড (beginBackgroundTask)কয়েক মিনিট (JobScheduler)
অসীম পটভূমিঅডিও, VoIP, নেভিগেশন, BluetoothForeground Service + বিজ্ঞপ্তি
পাওয়ার সেভিংলো পাওয়ার মোড — পটভূমি কাজ নিষ্ক্রিয় করেDoze, App Standby, ব্যাটারি অপটিমাইজেশন
সময়সূচীBGTaskScheduler (iOS 13+)WorkManager (Android Jetpack)
রিবুটের পরেশুধুমাত্র push বিজ্ঞপ্তিWorkManager কাজ সংরক্ষণ করে
সর্বোচ্চ নির্বাহের সময়~30 মিনিট (অডিও)অসীম (Foreground Service)

পটভূমি কাজের জন্য সর্বোত্তম অনুশীলন

প্রথম নিয়ম — পটভূমিতে সম্পদ খরচ কমিয়ে দিন। বেশিরভাগ পটভূমি কাজ ডিভাইস চার্জ হওয়া এবং Wi-Fi এর সাথে সংযুক্ত থাকার সময়ের জন্য স্থগিত করা যেতে পারে। শর্ত সহ কাজ সময়সূচী করতে BGTaskScheduler (iOS) এবং WorkManager (Android) ব্যবহার করুন। পটভূমিতে ভারী গণনা চালাবেন না — এটি ব্যাটারি নিষ্কাশন করে এবং CPU থ্রটলিং ঘটায়।

দ্বিতীয় নিয়ম — beginBackgroundTask এর জন্য সর্বদা expirationHandler নির্দিষ্ট করুন। যদি অ্যাপ বরাদ্দ সময়ে কাজ সম্পূর্ণ না করে, সিস্টেম এটি জোর করে Suspended এ স্থানান্তর করবে বা শেষ করবে। expirationHandler হল ডেটা সংরক্ষণ এবং সঠিকভাবে কাজ শেষ করার শেষ সুযোগ। Android এ, WorkManager এ setForegroundAsync ব্যবহার করুন যদি আরও সময় প্রয়োজন হয় তাহলে একটি সাধারণ কাজকে অগ্রভাগে রূপান্তর করতে।

তৃতীয় নিয়ম — চালু করার আগে পটভূমি কাজের সীমাবদ্ধতা পরীক্ষা করুন। iOS এ, অবশিষ্ট সময় পরীক্ষা করতে UIApplication.shared.backgroundTimeRemaining ব্যবহার করুন। Android এ, ActivityManager.isBackgroundRestricted() পরীক্ষা করুন — যদি true হয়, অ্যাপ পটভূমি কাজ চালাতে পারে না, এবং আপনার ব্যবহারকারীকে সেটিংসে সীমাবদ্ধতা অপসারণের পরামর্শ দেওয়া উচিত। এটি গুরুত্বপূর্ণ পটভূমি কাজ সহ অ্যাপের জন্য বিশেষভাবে গুরুত্বপূর্ণ — অ্যালার্ম, ক্যালেন্ডার, সিঙ্ক্রোনাইজেশন।

চতুর্থ নিয়ম — একটি বাস্তব ডিভাইসে পটভূমি কাজ পরীক্ষা করুন। সিমুলেটর এবং এমুলেটর বাস্তব পটভূমি কাজের সীমাবদ্ধতা পুনরুৎপাদন করে না। iOS এ, Xcode এ Debug → Simulate Background Fetch ব্যবহার করুন। Android এ, রিবুটের পরে WorkManager পরীক্ষার জন্য adb shell am broadcast -a android.intent.action.ACTION_BOOT_COMPLETED ব্যবহার করুন। কম ব্যাটারি সহ ডিভাইসে বাস্তব পরীক্ষা বেশিরভাগ পটভূমি কাজের সমস্যা প্রকাশ করে।

swift
import UIKit

final class BackgroundTaskManager {
    static let shared = BackgroundTaskManager()
    private var tasks: [String: UIBackgroundTaskIdentifier] = [:]

    func startTask(name: String, expiration: @escaping () -> Void) {
        let remaining = UIApplication.shared.backgroundTimeRemaining
        print("পটভূমিতে অবশিষ্ট সময়: \(remaining) সেকেন্ড")

        let task = UIApplication.shared.beginBackgroundTask { [weak self] in
            print("কাজের জন্য সময় শেষ: \(name)")
            expiration()
            self?.endTask(name: name)
        }

        tasks[name] = task
    }

    func endTask(name: String) {
        guard let task = tasks.removeValue(forKey: name),
              task != .invalid
        else { return }
        UIApplication.shared.endBackgroundTask(task)
    }
}

কোডটি একটি পটভূমি কাজ ব্যবস্থাপক দেখায় যা অবশিষ্ট সময় ট্র্যাক করে এবং শনাক্তকারী পরিচালনা করে। backgroundTimeRemaining জোর করে শেষ করার আগে সেকেন্ডের সংখ্যা ফেরত দেয় — যদি মান অসীম হয়, অ্যাপ সীমাবদ্ধতা ছাড়া চলছে (অডিও, নেভিগেশন)। ব্যবস্থাপক বিভিন্ন নামের সাথে একাধিক পটভূমি কাজ শুরু করার এবং প্রতিটি সঠিকভাবে সম্পূর্ণ করার অনুমতি দেয়। এই পদ্ধতি পটভূমি কাজ ফাঁস প্রতিরোধ করে এবং নিশ্চিত করে যে সিস্টেম বন্ধ না করা কাজের কারণে অ্যাপ শেষ না করে।

সচরাচর জিজ্ঞাসিত প্রশ্ন

একটি iOS অ্যাপ কি চিরকাল পটভূমিতে চলতে পারে?

হ্যাঁ, সীমিত সংখ্যক বিভাগের জন্য: অডিও (AVAudioSession বিভাগ .playback), VoIP (PushKit), নেভিগেশন (CLLocationManager allowsBackgroundLocationUpdates সহ), Bluetooth (সেন্ট্রাল ব্যাকগ্রাউন্ড মোড), পটভূমি আপডেট (BGTaskScheduler)। অন্যসবের জন্য — সর্বোচ্চ 30 সেকেন্ড। iOS 16+ এ, Apple অনুমোদিত বিভাগের জন্যও প্রয়োজনীয়তা কঠোর করেছে।

beginBackgroundTask BGTaskScheduler থেকে কিভাবে আলাদা?

beginBackgroundTask পটভূমিতে যাওয়ার পরে অ্যাপের জীবন ~30 সেকেন্ড বাড়ানোর জন্য একটি সিঙ্ক্রোনাস API। এটি applicationDidEnterBackground এ কল করা হয়। BGTaskScheduler সিস্টেম ট্রিগার (সময়, অবস্থান, সামগ্রী আপডেট) এর মাধ্যমে ভবিষ্যতে কাজ সময়সূচী করার জন্য একটি অ্যাসিঙ্ক্রোনাস API। BGTaskScheduler হল আধুনিক পদ্ধতি, যা Apple iOS 13+ এর জন্য প্রস্তাবিত।

Android কেন আমার Background Service শেষ করে?

Android 8 (API 26) থেকে শুরু করে, অ্যাপ পটভূমিতে যাওয়ার কয়েক মিনিট পরে একটি Background Service শেষ হয়। সমাধান: দীর্ঘ কার্যক্রমের জন্য বিজ্ঞপ্তি সহ Foreground Service বা স্থগিত কাজের জন্য WorkManager ব্যবহার করুন। সেটিংসে আপনার অ্যাপের জন্য ব্যাটারি অপটিমাইজেশন পরীক্ষা করুন — যদি এটি অপটিমাইজ করা থাকে, সিস্টেম পটভূমি কাজ স্থগিত বা বাতিল করতে পারে।

iOS সিমুলেটরে Background কিভাবে পরীক্ষা করবেন?

হোম স্ক্রিনে যেতে Cmd+Shift+H চাপুন। Xcode এ, Debug → Simulate Background Fetch ব্যবহার করুন। beginBackgroundTask পরীক্ষা করতে, কনসোল (Shift+Cmd+C) খুলুন এবং e UIApplication.shared.backgroundTimeRemaining কল করুন। Xcode 15+ এ, সিমুলেটরের Diagnostics ট্যাবে Background Execution স্ক্রিপ্ট উপলব্ধ।

Android এ process death কি?

Process Death হল সম্পদের অভাব বা পটভূমিতে নিষ্ক্রিয়তার সময় সিস্টেম দ্বারা Android প্রক্রিয়ার সমাপ্তি। iOS এর বিপরীতে, Android এ Suspended নেই — প্রক্রিয়াটি হয় জীবিত (পটভূমিতে থাকতে পারে) অথবা মৃত (Not Running)। Process Death OS এর স্বাভাবিক আচরণ, এবং অ্যাপকে এর পরে SavedStateHandle, onSaveInstanceState বা DataStore এর মাধ্যমে সঠিকভাবে অবস্থা পুনরুদ্ধার করতে হবে।

সারাংশ

  • Background — অ্যাপ স্ক্রিনে দৃশ্যমান নয় কিন্তু কোড কার্যকর করে, Suspended (হিমায়িত) এর বিপরীতে
  • iOS — beginBackgroundTask (30 সেকেন্ড পর্যন্ত) এবং ভবিষ্যতের কাজের সময়সূচীর জন্য BGTaskScheduler
  • Android — দীর্ঘ কার্যক্রমের জন্য Foreground Service, নিশ্চয়তা সহ স্থগিত কাজের জন্য WorkManager
  • সীমাবদ্ধতা — উভয় প্ল্যাটফর্ম পটভূমি কাজের নিয়ম কঠোর করে: Doze, Low Power Mode, App Standby
  • সংরক্ষণ — applicationDidEnterBackground এবং onStop Suspended/Not Running এর আগে শেষ সুযোগ
  • সময়সূচী — BGTaskScheduler এবং WorkManager শর্ত সহ কাজ করে (Wi-Fi, চার্জিং, সময়)
  • Foreground Service — উভয় প্ল্যাটফর্মে অসীম পটভূমি কাজের একমাত্র উপায়

আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব

IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।

প্রকল্প নিয়ে আলোচনা করুন

আরও পড়ুন