Lifecycle-Aware Components কী?
🎯 Lifecycle-Aware Components কী?
Android অ্যাপে অনেক সময় আমরা এমন কাজ করি যেগুলো অ্যাপের Lifecycle (Activity বা Fragment-এর চলার ধাপ) এর ওপর নির্ভর করে। যেমন:
✅ ডেটা লোড করা যখন অ্যাপ শুরু হয়
✅ সেন্সর থেকে ডেটা নেওয়া যখন ইউজার অ্যাপ চালায়
✅ সেটিংস সংরক্ষণ করা যখন অ্যাপ বন্ধ হয়
👉 Lifecycle-Aware Components হলো এমন কিছু জিনিস (Classes) যেগুলো Activity বা Fragment-এর লাইফসাইকেল বুঝতে পারে এবং নিজে থেকেই সঠিক সময়ে কাজ করে!
🏗 কেন দরকার?
আগে ম্যানুয়ালি লাইফসাইকেল হ্যান্ডেল করতে হত, যেমন:
@Override
protected void onStart() {
super.onStart();
mySensor.start(); // সেন্সর চালু
}
@Override
protected void onStop() {
super.onStop();
mySensor.stop(); // সেন্সর বন্ধ
}
❌ এটা ঝামেলা তৈরি করতে পারে, ভুল হলে Memory Leak ও হতে পারে!
✅ Lifecycle-Aware Components ব্যবহার করলে এগুলো নিজে থেকেই Lifecycle অনুযায়ী কাজ করে!
⚡ কীভাবে কাজ করে?
Android Jetpack লাইব্রেরির Lifecycle API ব্যবহার করলে সহজেই লাইফসাইকেল-অওয়্যার কম্পোনেন্ট বানানো যায়।
১️⃣ LifecycleObserver ব্যবহার করা
আমরা LifecycleObserver ইন্টারফেস ব্যবহার করে একটা ক্লাস বানাতে পারি, যা Activity বা Fragment-এর অবস্থা বুঝবে।
class MyObserver implements LifecycleObserver {
@OnLifecycleEvent(Lifecycle.Event.ON_START)
void onStart() {
Log.d("MyObserver", "অ্যাপ শুরু হয়েছে!");
}
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
void onStop() {
Log.d("MyObserver", "অ্যাপ বন্ধ হচ্ছে!");
}
}
২️⃣ একটি LifecycleOwner (যেমন: Activity) তে এটাকে যোগ করা
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getLifecycle().addObserver(new MyObserver()); // Lifecycle-Aware Component যোগ করা
}
}
🔹 এখন onStart() আর onStop() Activity-এর Lifecycle অনুযায়ী অটোমেটিক কাজ করবে!
🚀 Lifecycle-Aware Components ব্যবহারের সুবিধা
✅ কম কোডে স্মার্ট Lifecycle হ্যান্ডলিং
✅ Memory Leak রোধ করা
✅ অনেক লাইব্রেরি (LiveData, ViewModel, CameraX) সহজেই লাইফসাইকেল-aware হয়
🎯 সংক্ষেপে
📌 Lifecycle-Aware Components হলো এমন ক্লাস, যেগুলো Activity বা Fragment-এর Lifecycle বুঝতে পারে এবং নিজে থেকেই সঠিক সময়ে কাজ করে। এতে অ্যাপ আরও স্মার্ট, ইফিশিয়েন্ট ও বাগ-মুক্ত হয়! 🚀🔥
তুমি কি কোনো নির্দিষ্ট উদাহরণ বা গভীর ব্যাখ্যা চাও? 😊
Comments
Post a Comment