রচনার সাথে লাইফসাইকেল একীভূত করুন

লাইফসাইকেল লাইব্রেরি অন্তর্নির্মিত API অফার করে যা আপনাকে জেটপ্যাক রচনার সাথে একীভূত করতে দেয়। কী API গুলি নিম্নলিখিত অন্তর্ভুক্ত করে:

  • বর্তমান Lifecycle.State জন্য প্রবাহ।
  • LifecycleEffects যা আপনাকে একটি নির্দিষ্ট Lifecycle.Event এর উপর ভিত্তি করে একটি ব্লক চালাতে দেয়।

এই ইন্টিগ্রেশনগুলি রচনা অনুক্রমের মধ্যে লাইফসাইকেলগুলি পরিচালনা করার জন্য সুবিধাজনক হুক প্রদান করে। এই দস্তাবেজটি রূপরেখা দেয় যে আপনি কীভাবে সেগুলি আপনার অ্যাপে ব্যবহার করতে পারেন৷

প্রবাহ সহ জীবনচক্র অবস্থা সংগ্রহ করুন

লাইফসাইকেল একটি currentStateFlow সম্পত্তি প্রকাশ করে যা বর্তমান Lifecycle.State কোটলিন StateFlow হিসাবে প্রদান করে। আপনি State হিসাবে এই Flow সংগ্রহ করতে পারেন. এটি আপনার অ্যাপটিকে রচনার সময় জীবনচক্রের পরিবর্তনগুলি পড়তে দেয়৷

val lifecycleOwner = LocalLifecycleOwner.current
val stateFlow = lifecycleOwner.lifecycle.currentStateFlow
…
val currentLifecycleState by stateFlow.collectAsState()

পূর্ববর্তী উদাহরণটি lifecycle-common মডিউল ব্যবহার করে অ্যাক্সেসযোগ্য। currentStateAsState() পদ্ধতিটি lifecycle-runtime-compose মডিউলে উপলব্ধ, যা আপনাকে একটি লাইনের সাথে বর্তমান লাইফসাইকেল অবস্থা সহজেই পড়তে দেয়। নিম্নলিখিত উদাহরণ এটি প্রদর্শন করে:

val lifecycleOwner = LocalLifecycleOwner.current
val currentLifecycleState = lifecycleOwner.lifecycle.currentStateAsState()

জীবনচক্র ইভেন্টে কোড চালান

এছাড়াও LifecycleEffects রয়েছে যা আপনাকে একটি ব্লক চালাতে দেয় যখন একটি নির্দিষ্ট Lifecycle.Event ঘটে।

LifecycleEventEffect(Lifecycle.Event.ON_START) {
  // do something here
}

LifecycleEventEffect ছাড়াও, আপনি LifecycleStartEffect এবং LifecycleResumeEffect ব্যবহার করতে পারেন। এই APIগুলি নির্দিষ্ট ইভেন্টের সাথে আবদ্ধ। তারা তাদের প্রাথমিক ব্লকের মধ্যে একটি অতিরিক্ত ব্লক অফার করে যা ইভেন্টটি শুরু হতে পারে এমন কোনও কোড পরিষ্কার করতে সহায়তা করে।

লাইফসাইকেল স্টার্ট ইফেক্ট

LifecycleStartEffect LifecycleEffect এর মতই, কিন্তু এটি শুধুমাত্র Lifecycle.Event.ON_START ইভেন্টে চলে। এটি অন্যান্য কম্পোজ কীগুলির মতো কাজ করে এমন কীগুলিও গ্রহণ করে। যখন কী পরিবর্তন হয়, এটি ব্লকটিকে আবার চালানোর জন্য ট্রিগার করে।

যখন একটি Lifecycle.Event.ON_STOP ইভেন্ট থাকে বা প্রভাবটি রচনা থেকে বেরিয়ে যায়, এটি একটি onStopOrDispose ব্লক কার্যকর করে। এটি প্রারম্ভিক ব্লকের অংশ ছিল এমন যেকোনো কাজ পরিষ্কার করার অনুমতি দেয়।

LifecycleStartEffect {
  // ON_START code is executed here

  onStopOrDispose {
    // do any needed clean up here
  }
}

লাইফসাইকেল রিজুম ইফেক্ট

LifecycleResumeEffect LifecycleStartedEffect এর মতোই কাজ করে, কিন্তু এটি পরিবর্তে Lifecycle.Event.ON_RESUME ইভেন্টে কার্যকর করে। এটি একটি onPauseOrDispose ব্লকও প্রদান করে যা পরিষ্কারের কাজ করে।

LifecycleResumeEffect {
  // ON_RESUME code is executed here

  onPauseOrDispose {
    // do any needed clean up here
  }
}