Background Task: মূল ধারণা, কাজের নিবন্ধন এবং ব্যাকগ্রাউন্ডে নির্বাহ

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

Background Task একটি iOS মেকানিজম যা অ্যাপ্লিকেশনকে ব্যাকগ্রাউন্ডে চলে যাওয়ার পর একটি অপারেশন সম্পূর্ণ করার অনুমতি দেয়। সিস্টেম কাজটি সম্পাদনের জন্য সীমিত সময় (30 সেকেন্ড পর্যন্ত) বরাদ্দ করে, যার পরে অ্যাপ্লিকেশনটি জোর করে স্থগিত করা হয়। Apple, 2026-এর মতে, ব্যাকগ্রাউন্ড টাস্ক সঠিকভাবে সম্পূর্ণ করার জন্য এক্সপিরেশন হ্যান্ডলার ব্যবহার করা বাধ্যতামূলক প্রয়োজন।

মূল বিষয়

  • Background Task — অ্যাপ ব্যাকগ্রাউন্ডে যাওয়ার পর অপারেশন সম্পূর্ণ করার জন্য iOS মেকানিজম।
  • beginBackgroundTask — ব্যাকগ্রাউন্ড টাস্ক নিবন্ধনের জন্য UIApplication-এর মূল পদ্ধতি।
  • এক্সপিরেশন হ্যান্ডলার — বরাদ্দ সময় শেষ হলে সিস্টেম দ্বারা আহ্বানকৃত কোড ব্লক।
  • 30 সেকেন্ডের সীমা — মানক নির্বাহ সময়, Background Modes-এর মাধ্যমে বাড়ানো যায়।
  • UIApplication.shared.endBackgroundTask — সঠিকভাবে টাস্ক সম্পূর্ণ করার জন্য বাধ্যতামূলক কল।

iOS-এ Background Task কী?

Background Task একটি প্রোগ্রামেটিক iOS মেকানিজম যা অ্যাপ্লিকেশনকে ব্যাকগ্রাউন্ডে চলে যাওয়ার পর নির্বাহের সময় বাড়ানোর অনুমতি দেয়। যখন ব্যবহারকারী অ্যাপ্লিকেশনটি ছোট করে, সিস্টেম UIApplicationDelegate.applicationDidEnterBackground কল করে। যদি সেই মুহূর্তে একটি গুরুত্বপূর্ণ অপারেশন চলমান থাকে (ডেটা সংরক্ষণ, অনুরোধ পাঠানো), অ্যাপ্লিকেশন beginBackgroundTask-এর মাধ্যমে অতিরিক্ত সময় অনুরোধ করতে পারে।

কেন Background Tasks প্রয়োজন

Background Task ব্যবহার না করে, অ্যাপ্লিকেশনটি ব্যাকগ্রাউন্ডে যাওয়ার 3–5 সেকেন্ডের মধ্যে জোর করে স্থগিত করা হয়। সমস্ত অসম্পূর্ণ অপারেশন বাধাগ্রস্ত হয়: ডেটা সংরক্ষিত হয় না, নেটওয়ার্ক অনুরোধ বাতিল হয়, অবস্থা হারিয়ে যায়। Background Task অ্যাপ্লিকেশনকে এই অপারেশনগুলি সঠিকভাবে সম্পূর্ণ করতে 30 সেকেন্ড পর্যন্ত সময় দেয়।

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

ইতিহাস এবং বিবর্তন

beginBackgroundTask iOS 4.0-তে আবির্ভূত হয় — মাল্টিটাস্কিং সমর্থনকারী প্রথম রিলিজ। iOS 4-এর আগে, হোম বাটন চাপলে অ্যাপ্লিকেশন সম্পূর্ণরূপে শেষ হয়ে যেত। iOS 7 Background Fetch এবং URLSession ব্যাকগ্রাউন্ড কনফিগারেশন প্রবর্তন করে। iOS 13 থেকে শুরু করে, Apple নতুন প্রকল্পের জন্য BGTaskScheduler সুপারিশ করে, কিন্তু beginBackgroundTask স্বল্পমেয়াদী অপারেশনের জন্য প্রাসঙ্গিক থাকে।

beginBackgroundTask কীভাবে কাজ করে: জীবনচক্র

beginBackgroundTask UIApplication-এর একটি পদ্ধতি যা একটি কাজ নিবন্ধন করে এবং একটি অনন্য UIBackgroundTaskIdentifier ফেরত দেয়। সিস্টেম ব্যাকগ্রাউন্ড নির্বাহ টাইমার বাড়ায়। সময় শেষ হলে এক্সপিরেশন হ্যান্ডলার কল করা হয়, যার পরে অ্যাপ্লিকেশনকে সঠিকভাবে কাজ সম্পূর্ণ করতে endBackgroundTask(identifier:) কল করতে হবে।

ধাপে ধাপে নির্বাহ প্রক্রিয়া

ধাপ 1 — অ্যাপ্লিকেশন didEnterBackground বিজ্ঞপ্তি পায়। ধাপ 2 — beginBackgroundTask(expirationHandler:) কল করা হয়। ধাপ 3 — গুরুত্বপূর্ণ অপারেশন (সংরক্ষণ, নেটওয়ার্ক অনুরোধ) সম্পাদিত হয়। ধাপ 4 — সম্পন্ন হলে, endBackgroundTask(identifier:) কল করা হয়। যদি অপারেশন 30 সেকেন্ডের মধ্যে সম্পন্ন না হয় — সিস্টেম এক্সপিরেশন হ্যান্ডলার কল করে, এবং অ্যাপ্লিকেশনকে অবিলম্বে কাজ শেষ করতে হবে।

swift
var backgroundTaskID: UIBackgroundTaskIdentifier = .invalid

func startBackgroundTask() {
    backgroundTaskID = UIApplication.shared.beginBackgroundTask {
        // এক্সপিরেশন হ্যান্ডলার
        UIApplication.shared.endBackgroundTask(backgroundTaskID)
        backgroundTaskID = .invalid
    }
}

func finishBackgroundTask() {
    UIApplication.shared.endBackgroundTask(backgroundTaskID)
    backgroundTaskID = .invalid
}

UIApplication.shared.backgroundTimeRemaining

backgroundTimeRemaining প্রপার্টি ব্যাকগ্রাউন্ড টাস্ক জোর করে শেষ হওয়ার আগে বাকি সেকেন্ডের সংখ্যা ফেরত দেয়। মানটি রিয়েল টাইমে হ্রাস পায়। যদি অ্যাপ্লিকেশন ব্যাকগ্রাউন্ডে না থাকে — এটি DBL_MAX ফেরত দেয়। আচরণ মানিয়ে নিতে এই প্রপার্টি ব্যবহার করুন: যখন 5 সেকেন্ডের কম বাকি থাকে, দীর্ঘ অপারেশন বাধাগ্রস্ত করুন এবং অগ্রগতি সংরক্ষণ করুন।

একাধিক কাজ

একটি অ্যাপ্লিকেশন একসাথে একাধিক Background Tasks নিবন্ধন করতে পারে। প্রতিটি কাজ তার নিজস্ব শনাক্তকারী পায়। মোট নির্বাহ সময় ক্রমবর্ধমান — যদি 3টি কাজ নিবন্ধিত হয়, অ্যাপ্লিকেশন 90 সেকেন্ড পর্যন্ত পেতে পারে। তবে, যদি সম্পদ শেষ হয়ে যায় বা ব্যাটারি সীমা অতিক্রম করে তবে সিস্টেম অ্যাপ্লিকেশনটি আগে শেষ করতে পারে।

এক্সপিরেশন হ্যান্ডলার: বাধ্যতামূলক সমাপ্তি ব্যবস্থাপনা

এক্সপিরেশন হ্যান্ডলার একটি কোড ব্লক যা সিস্টেম ব্যাকগ্রাউন্ড টাস্কের জন্য বরাদ্দ সময় শেষ হলে কল করে। এক্সপিরেশন হ্যান্ডলার থাকা Apple-এর বাধ্যতামূলক প্রয়োজন। এটি ছাড়া, অ্যাপ্লিকেশন সিস্টেম দ্বারা জোর করে শেষ হতে পারে এবং ডেটা হারিয়ে যেতে পারে।

এক্সপিরেশন হ্যান্ডলারে কী থাকা উচিত

এক্সপিরেশন হ্যান্ডলারকে অ্যাপ্লিকেশন অবস্থা সংরক্ষণের জন্য ন্যূনতম পদক্ষেপ নিতে হবে: বর্তমান ডেটা স্থায়ী সঞ্চয়ে সংরক্ষণ করুন, সংশ্লিষ্ট শনাক্তকারীর সাথে endBackgroundTask কল করুন এবং শনাক্তকারী .invalid-এ সেট করুন। এক্সপিরেশন হ্যান্ডলারের ভিতরে নতুন দীর্ঘ অপারেশন শুরু করা নিষিদ্ধ — নির্বাহ সময় 1–2 সেকেন্ডের মধ্যে সীমাবদ্ধ।

swift
func handleExpiration() {
    // নির্বাহ অগ্রগতি সংরক্ষণ করা হচ্ছে
    saveProgressToUserDefaults()

    // সক্রিয় নেটওয়ার্ক অনুরোধ বাতিল করা হচ্ছে
    currentTask?.cancel()

    // Background Task শেষ করা হচ্ছে
    UIApplication.shared.endBackgroundTask(backgroundTaskID)
    backgroundTaskID = .invalid
}

// এক্সপিরেশন হ্যান্ডলার দিয়ে নিবন্ধন
backgroundTaskID = UIApplication.shared.beginBackgroundTask(
    withName: "SaveDocument",
    expirationHandler: handleExpiration
)

এক্সপিরেশন হ্যান্ডলারের সাথে সাধারণ ত্রুটি

সবচেয়ে সাধারণ ভুল হল এক্সপিরেশন হ্যান্ডলারের ভিতরে endBackgroundTask কল না করা। এই ক্ষেত্রে, সিস্টেম কাজটিকে সক্রিয় মনে করতে থাকে, অ্যাপ্লিকেশন স্থগিত অবস্থায় যায় না এবং ব্যাটারি শেষ হয়ে যায়। দ্বিতীয় ভুল হল এক্সপিরেশন হ্যান্ডলারের ভিতরে দীর্ঘ অপারেশন শুরু করা। সিস্টেম সেগুলি শেষ হওয়ার আগে অ্যাপ্লিকেশনটি শেষ করতে পারে এবং ডেটা হারিয়ে যাবে।

অবশিষ্ট সময় পরীক্ষা

এক্সপিরেশন হ্যান্ডলারে, নির্বাহ সময় গুরুতরভাবে সীমিত — সাধারণত 1 সেকেন্ডের কম। তাই, হ্যান্ডলারের ভিতরে আপনি করতে পারবেন না: জটিল গণনা, নেটওয়ার্ক অনুরোধ, CoreData-তে大量 ডেটা লেখা। শুধুমাত্র পারমাণবিক অপারেশন: UserDefaults-এ একটি কী লেখা, অবস্থা ফ্ল্যাগ সেট করা, endBackgroundTask কল করা।

Swift-এ Background Task কোড উদাহরণ

অ্যাপ্লিকেশন ব্যাকগ্রাউন্ডে গেলে একটি ডকুমেন্ট সংরক্ষণের জন্য সম্পূর্ণ Background Task বাস্তবায়ন দেখি। উদাহরণটিতে কাজ নিবন্ধন, অবশিষ্ট সময় পরীক্ষার সাথে অপারেশন সম্পাদন এবং endBackgroundTask-এর মাধ্যমে সঠিক সমাপ্তি অন্তর্ভুক্ত রয়েছে।

অগ্রগতি সহ ডকুমেন্ট সংরক্ষণ

ব্যাকগ্রাউন্ডে যাওয়ার সময়, অ্যাপ্লিকেশন একটি বড় ডকুমেন্ট সংরক্ষণ শুরু করে। Background Task অপারেশনের জন্য 30 সেকেন্ড পর্যন্ত সময় দেয়। সময় শেষ হলে — এক্সপিরেশন হ্যান্ডলার মধ্যবর্তী ফলাফল সংরক্ষণ করে। সংরক্ষণ শেষ হওয়ার পরে, সম্পদ মুক্ত করতে endBackgroundTask কল করা হয়।

swift
class DocumentManager {
    private var backgroundTaskID: UIBackgroundTaskIdentifier = .invalid

    func saveDocumentInBackground(document: Document) {
        backgroundTaskID = UIApplication.shared.beginBackgroundTask {
            self.saveProgress(document)
            self.endBackgroundTask()
        }

        DispatchQueue.global().async {
            document.save()
            self.endBackgroundTask()
        }
    }

    private func endBackgroundTask() {
        UIApplication.shared.endBackgroundTask(backgroundTaskID)
        backgroundTaskID = .invalid
    }
}

সার্ভারে ডেটা পাঠানো

ব্যাকগ্রাউন্ডে নেটওয়ার্ক অনুরোধ বিশেষ মনোযোগ প্রয়োজন — এক্সপিরেশন হ্যান্ডলার প্রতিক্রিয়া পাওয়ার আগে অনুরোধ বাধাগ্রস্ত করতে পারে। dataTask-সহ URLSession ব্যবহার করুন এবং পাঠানোর আগে backgroundTimeRemaining পরীক্ষা করুন। যদি 5 সেকেন্ডের কম বাকি থাকে — পরবর্তী অ্যাপ জাগরণ পর্যন্ত পাঠানো স্থগিত করুন।

swift
func sendCriticalData(data: Data) {
    backgroundTaskID = UIApplication.shared.beginBackgroundTask {
        // পুনরায় পাঠানোর জন্য ডেটা সংরক্ষণ করা হচ্ছে
        saveForRetry(data)
        self.endBackgroundTask()
    }

    let task = URLSession.shared.dataTask(with: request) { _, _, error in
        if error != nil {
            saveForRetry(data)
        }
        self.endBackgroundTask()
    }
    task.resume()
}

অবশিষ্ট সময় পর্যবেক্ষণ

দীর্ঘ অপারেশনের জন্য, UIApplication.shared.backgroundTimeRemaining পর্যবেক্ষণ করুন। যদি মান একটি সীমার নিচে (10 সেকেন্ড) নেমে যায়, বর্তমান অপারেশন বাধাগ্রস্ত করুন এবং মধ্যবর্তী ফলাফল সংরক্ষণ শুরু করুন। এটি এক্সপিরেশন হ্যান্ডলার জোর করে কল করার আগে সঠিক সমাপ্তি নিশ্চিত করে।

Background Task ব্যবহারের সেরা অভ্যাস

Background Task একটি শক্তিশালী মেকানিজম, কিন্তু এর অনুচিত ব্যবহার ব্যাটারি এবং কর্মক্ষমতা সমস্যার কারণ হয়। Apple-এর সুপারিশ এবং সম্প্রদায়ের প্রমাণিত অনুশীলন অনুসরণ করা সাধারণ ভুল এড়াতে এবং স্থিতিশীল অ্যাপ্লিকেশন অপারেশন নিশ্চিত করতে সহায়তা করবে।

নির্বাহ সময় কমিয়ে দিন

Background Task যথাসম্ভব দ্রুত সম্পূর্ণ করুন। ব্যাকগ্রাউন্ড নির্বাহের প্রতিটি সেকেন্ড ব্যাটারি শক্তি খরচ করে। সর্বোত্তম সময় — 5 সেকেন্ডের কম। যদি অপারেশন বেশি সময় নেয় — BGTaskScheduler বা Background Modes ব্যবহার বিবেচনা করুন। প্রকৃত প্রয়োজন ছাড়া beginBackgroundTask কলের মাধ্যমে কৃত্রিমভাবে কাজ বাড়াবেন না।

শনাক্তকারীর সঠিক ব্যবহার

UIBackgroundTaskIdentifier একটি ক্লাস বা স্ট্রাক্ট প্রপার্টি হিসাবে সংরক্ষণ করুন। এটি কখনও গ্লোবাল ভেরিয়েবল হিসাবে পাস করবেন না — এটি একাধিক কাজের সাথে দ্বন্দ্ব সৃষ্টি করে। দ্বৈত সমাপ্তি রোধ করতে endBackgroundTask কল করার পরে শনাক্তকারী .invalid-এ সেট করুন।

Background Task পরীক্ষা

Xcode সিমুলেটরে, হোম বাটনের মাধ্যমে অ্যাপ্লিকেশনটি ব্যাকগ্রাউন্ডে সুইচ করুন (Command + Shift + H). ব্যাকগ্রাউন্ড জাগরণ পরীক্ষার জন্য Debug — Simulate Background Fetch ব্যবহার করুন। সময় শেষ হওয়ার অনুকরণ করতে, এনভায়রনমেন্ট ভেরিয়েবল BACKGROUND_TASK_SIMULATE_EXPIRATION = YES সেট করুন — এক্সপিরেশন হ্যান্ডলার 5 সেকেন্ডের মধ্যে কল হবে।

swift
// অপারেশন শুরুর আগে অবশিষ্ট সময় পরীক্ষা
let remaining = UIApplication.shared.backgroundTimeRemaining
guard remaining > 10.0 else {
    // পর্যাপ্ত সময় নেই — কাজ স্থগিত করুন
    scheduleForNextLaunch()
    return
}

// সময় নিয়ন্ত্রণ সহ অপারেশন নির্বাহ
backgroundTaskID = UIApplication.shared.beginBackgroundTask {
    saveProgress()
    self.endBackgroundTask()
}

রিটেইন সাইকেল এড়িয়ে চলুন

এক্সপিরেশন হ্যান্ডলার self ক্যাপচার করে — এটি একটি রিটেইন সাইকেল তৈরি করতে পারে যদি backgroundTaskID একই অবজেক্টের প্রপার্টি হিসাবে সংরক্ষিত থাকে। ক্লোজারে [weak self] ব্যবহার করুন বা শনাক্তকারী আলাদাভাবে সংরক্ষণ করুন। রিটেইন সাইকেল মেমরি লিকের কারণ — অ্যাপ্লিকেশন শেষ না হওয়া পর্যন্ত অবজেক্টটি মুক্ত হবে না।

Background Task বনাম BGTaskScheduler: পদ্ধতির তুলনা

iOS 13 প্রকাশের সাথে, Apple BGTaskScheduler প্রবর্তন করে — পুরানো Background Task API-এর আধুনিক প্রতিস্থাপন। উভয় মেকানিজম একই ধরনের কাজ সমাধান করে, কিন্তু BGTaskScheduler আরও নিয়ন্ত্রণ এবং নমনীয়তা প্রদান করে। পার্থক্য বোঝা একটি নির্দিষ্ট পরিস্থিতির জন্য সঠিক টুল বেছে নিতে সাহায্য করবে।

বৈশিষ্ট্যBackground TaskBGTaskScheduler
iOS সংস্করণ4.0+13.0+
সর্বোচ্চ সময়30 সেকেন্ড30 সেকেন্ড / 10 মিনিট (processing)
সূচনাdidEnterBackgroundশিডিউলিং + সিস্টেম
নির্বাহ guaranteeশুধুমাত্র ব্যাকগ্রাউন্ডে যাওয়ার সময়সিস্টেমের জন্য সুবিধাজনক যেকোনো সময়
এক্সপিরেশন হ্যান্ডলারহ্যাঁ, বাধ্যতামূলকহ্যাঁ, task.expirationHandler-এর মাধ্যমে
ইন্টারনেটশুরুতে প্রয়োজনrequiresNetworkConnectivity-এর মাধ্যমে উপলব্ধ
চার্জিংপ্রয়োজন নেইprocessing-এর জন্য ঐচ্ছিক

কখন Background Task ব্যবহার করবেন

beginBackgroundTask স্বল্পমেয়াদী অপারেশনের জন্য উপযুক্ত যা ব্যাকগ্রাউন্ডে যাওয়ার সময় অবিলম্বে সম্পাদন করতে হবে: অবস্থা সংরক্ষণ, নেটওয়ার্ক অনুরোধ সম্পূর্ণ করা, ডেটা ক্যাশ করা। API সহজ এবং Info.plist কনফিগারেশন বা শনাক্তকারী নিবন্ধনের প্রয়োজন নেই। অপারেশনের জন্য আদর্শ যা 10 সেকেন্ডের কম সময় নেয়।

কখন BGTaskScheduler ব্যবহার করবেন

BGTaskScheduler কাজের জন্য উপযুক্ত যা যেকোনো সুবিধাজনক সময়ে সম্পাদন করা যেতে পারে: পর্যায়ক্রমিক সিঙ্ক্রোনাইজেশন, ক্যাশ পরিষ্কার, উইজেট আপডেট। সিস্টেম নিজেই ব্যবহারকারীর আচরণ এবং ব্যাটারি অবস্থা বিবেচনা করে সর্বোত্তম সময় নির্বাচন করে। দীর্ঘ অপারেশনের জন্য (10 মিনিট পর্যন্ত), BGProcessingTask ব্যবহার করুন।

সম্মিলিত ব্যবহার

উভয় API একই অ্যাপ্লিকেশনে ব্যবহার করা যেতে পারে। Background Task — ব্যাকগ্রাউন্ডে যাওয়ার সময় তাৎক্ষণিক অপারেশনের জন্য (ড্রাফট সংরক্ষণ)। BGTaskScheduler — নির্ধারিত আপডেটের জন্য (প্রতি 6 ঘন্টায় সিঙ্ক্রোনাইজেশন)। দায়িত্ব পৃথকীকরণ সঠিক ডেটা সংরক্ষণ এবং শক্তি-দক্ষ ব্যাকগ্রাউন্ড রক্ষণাবেক্ষণ নিশ্চিত করে।

প্রায়শই জিজ্ঞাসিত প্রশ্ন

didEnterBackground-এর বাইরে কি beginBackgroundTask কল করা যাবে?

হ্যাঁ, beginBackgroundTask অ্যাপ্লিকেশন নির্বাহের যেকোনো সময় কল করা যেতে পারে। তবে, সিস্টেম সময় বরাদ্দ শুধুমাত্র ব্যাকগ্রাউন্ডে যাওয়ার পরে শুরু হবে। যদি অ্যাপ্লিকেশন অগ্রভাগে থাকে, beginBackgroundTask কল করার কোনো প্রভাব নেই — backgroundTimeRemaining DBL_MAX ফেরত দেয় এবং কাজটি ব্যাকগ্রাউন্ডে যাওয়ার সময় সক্রিয় হবে।

endBackgroundTask কল না করলে কী হয়?

যদি endBackgroundTask কল না করা হয়, সিস্টেম অ্যাপ্লিকেশনটিকে ব্যাকগ্রাউন্ডে সক্রিয় মনে করতে থাকে। 30 সেকেন্ড পরে, এক্সপিরেশন হ্যান্ডলার কল হবে, কিন্তু যদি সেটিতেও endBackgroundTask না থাকে — অ্যাপ্লিকেশন মেমরিতে থাকে, ব্যাটারি শেষ করে। iOS 13+-এ, সিস্টেম 3 মিনিট পরে এই ধরনের অ্যাপ্লিকেশন জোর করে শেষ করে।

কীভাবে 30 সেকেন্ডের বেশি Background Task বাড়ানো যায়?

মানক সময় 30 সেকেন্ড। এটি শুধুমাত্র Background Modes: Audio (প্লেব্যাক), Location (জিওলোকেশন), Bluetooth (BLE) এর মাধ্যমে বাড়ানো যায়। অথবা BGProcessingTask (iOS 13+) এর মাধ্যমে — চার্জিং এবং Wi-Fi সহ 10 মিনিট পর্যন্ত। beginBackgroundTask নিজে সীমা বাড়ানোর কোনো উপায় প্রদান করে না।

Background Task কি iPad-এ কাজ করে?

হ্যাঁ, iPadOS iOS-এর মতো একই সীমাবদ্ধতা সহ beginBackgroundTask সম্পূর্ণরূপে সমর্থন করে। Stage Manager সহ iPad-এ, অ্যাপ্লিকেশন মেমরিতে বেশি সময় থাকতে পারে — বড় RAM-এর কারণে সিস্টেম অ্যাপ্লিকেশন কম স্থগিত করে। কিন্তু 30 সেকেন্ডের ব্যাকগ্রাউন্ড টাস্ক সীমা বহাল থাকে।

প্রকৃত ডিভাইসে Background Task কীভাবে ডিবাগ করবেন?

ডিভাইসটি Xcode-এ সংযোগ করুন, অ্যাপ্লিকেশন চালু করুন, এটি ছোট করুন — কনসোলে সিস্টেম লগ প্রদর্শিত হবে। বিশদ লগ সংগ্রহের জন্য sysdiagnose ব্যবহার করুন: ডিভাইস থেকে sysdiagnose জোর করে ট্রিগার করুন (ভলিউম আপ + ভলিউম ডাউন + পাওয়ার)। Xcode ডিবাগ নেভিগেটরে, ব্যাকগ্রাউন্ড টাস্ক কার্যকলাপ পর্যবেক্ষণ করুন।

সারাংশ

  • Background Task — iOS 4.0 থেকে উপলব্ধ, ব্যাকগ্রাউন্ডে যাওয়ার পর অপারেশন সম্পূর্ণ করার জন্য iOS মেকানিজম।
  • beginBackgroundTask — UIApplication পদ্ধতি যা একটি কাজ নিবন্ধন করে এবং তার সমাপ্তির জন্য শনাক্তকারী ফেরত দেয়।
  • এক্সপিরেশন হ্যান্ডলার — বাধ্যতামূলক কোড ব্লক যা 30 সেকেন্ড সীমা শেষ হলে সিস্টেম দ্বারা কল করা হয়।
  • endBackgroundTask — সঠিকভাবে কাজ সম্পূর্ণ করার জন্য বাধ্যতামূলক কল; এটি ছাড়া অ্যাপ্লিকেশন মেমরিতে থাকে।
  • BGTaskScheduler — শিডিউলিং, দুই ধরনের কাজ এবং নির্বাহ শর্ত সহ আধুনিক বিকল্প (iOS 13+).
  • backgroundTimeRemaining — অবশিষ্ট সময় পরীক্ষা এবং কাজের আচরণ মানিয়ে নেওয়ার জন্য প্রপার্টি।
  • তাৎক্ষণিক স্বল্পমেয়াদী অপারেশনের জন্য Background Task এবং নতুন প্রকল্পে নির্ধারিত ব্যাকগ্রাউন্ড আপডেটের জন্য BGTaskScheduler ব্যবহার করুন।

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

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

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

আরও পড়ুন