একটি একটিভিটির জীবদ্দশাকালীন সময়ে, সিস্টেম লাইফসাইকেল পদ্ধতির একটি মূল সেট কে ক্রমানুসারে কল করে যা একটা পিরামিডের ধাপের মতো। তাই একটিভিটি লাইফসাইকেল এর প্রতিটা ধাপ পিরামিডের পৃথক ধাপ। যখন সিস্টেম একটি নতুন একটিভিটি ইনসট্যান্স তৈরী করে, প্রতিটা কলব্যাক পদ্ধতি একটিভিটি স্টেটকে উপরের দিকে একধাপ এগিয়ে নেয়। পিরামিডের সবচেয়ে উপরের দিক হচ্ছে সেই পয়েন্ট যাতে একটিভিটি সম্মূখভাগে রান করে এবং ইউজার এর সাথে যোগাযোগ করতে পারে।
যখন ইউজার একটিভিটি ত্যাগ করা শুরু করে, সিস্টেম আরেকটি পদ্ধতি কল করে যা একটিভিটিকে বিচ্ছিন্ন করার জন্য একটিভিটি স্টেট কে পিরামিডের নীচের দিকে নামিয়ে আনে। কিছু কিছু ক্ষেত্রে, একটিভিটি শুধুমাত্র একটা অংশ নামিয়ে নিয়ে আসে এবং অপেক্ষা করে (যেমন, যখন ইউজার অন্য অ্যাপে চলে যায়), যে পয়েন্ট থেকে একটিভিটি আবার উপরে উঠে যেতে পারে (যদি ইউজার একটিবিটিতে ফিরে আসে) এবং যেখানে ইউজার এটা রেখে যায় সেখান থেকে শুরু করে।
ফিগার ১. একটিভিটি লাইফসাইকেলের একটি সরলিকৃত ডায়াগ্রাম, একটি পিরামিডড স্টেপের প্রদর্শন। এটা দেখায় কীভাবে একটিভিটি রিজিউম স্টেট এর উপরের দিকে নিয়ে যেতে প্রতিটা কলব্যাক ব্যবহৃত হয়, এখানে আরও একটি কলব্যাক পদ্ধতি আছে যা একটিভিটিকে নীচের ধাপে নিয়ে যায়। একটিভিটি পজড স্টেট (অবস্থা) এবং স্টপড স্টেট থেকে রিজিউম স্টেটে ফিরেও আসতে পারে।
আপনার একটিভিটির জটিলতার উপর নির্ভর করে, সম্ভতত আপনার সকল লাইফসাইকেল মেথড বাস্তবায়ন করার দরকার নেই। যাহোক এটা গুরুত্বপূর্ণ যে আপনি প্রতিটা বিষয় বুঝতে পেরেছেন এবং বাস্তবায়ন করছেন যা ইউজার যা আশা করছে আপনার অ্যাপ সেভাবে কাজ করবে। আপনার একটিভিটি লাইফসাইকেল পদ্ধতির যথাযথ বাস্তায়ন আপনার অ্যাপকে বিভিন্ন উপায়ে সুন্দরভাবে কাজ করাটাকে নিশ্চিত করবে, যার মধ্যে রয়েছে:
আপনার অ্যাপ ব্যবহার করার সময় যদি ইউজারের কোন ফোন কল আসে বা অন্য কোন অ্যাপে চলে যায় তখন এটা একেবারে বন্ধ হয়ে যায় না।
ইউজার এটাকে সক্রিয়ভাবে ব্যবহার না করলে মূল্যবান সিস্টেম রিসোর্স ব্যয় করে না
যখন ইউজার অ্যাপ ছেড়ে চলে যায় এবং পড়ে আবার ফিরে আসে সেক্ষেত্রে এটা ইউজারের অগ্রগতিকে হারিয়ে যেতে দেয় না
স্ক্রিন যখন ল্যান্ডস্কেপ এবং পোট্রেইট এর মধ্যে রোটেট করে তখন এটা ইউজারের অগ্রগতিকে হারিয়ে যেতে অথবা বন্ধ হতে দেয় না
যখন আপনি নিম্নোক্ত অনুশীলনী শিখবেন, সেখানে বেশ কিছু অবস্থা আছে যেখানে একটি একটিভিটি বিভিন্ন স্টেটের (অবস্থানের) মধ্যে পরিবর্তন হয় যা ফিগার ১ এ দেখানো হয়েছে। কিন্তু এই স্টেটগুলোর মধ্যে শুধুমাত্র তিনটা অনড় থাকে। তাই, একটিভিটি একটি বর্ধিত সময়ের জন্য তিনটার মধ্যে একটিতে অবস্থান করতে পারে:
Resumed/রিজিউমড
এই স্টেটে (অবস্থানে), একটিভিটি সামনে থাকে এবং ইউজার এটার সাথে যোগাযোগ করতে পারে। (মাঝে এটাকে “রানিং” স্টেট হিসাবে উল্লেখ করা হয়)
Paused/ পজড
এই স্টেটে, একটিভিটি অন্য একটি দ্বারা আংশিকভাবে ঢাকা থাকে-অন্য একটিভিটি যেটা সামনে থাকে সেটা অর্ধস্বচ্ছ বা সম্পূর্ণ স্ক্রিন ঢেকে দেয় না। পজড একটিভিটিটি ইউজার ইনপুট গ্রহণ করে না এবং কোন কোড সম্পাদন করে না।
Stopped/ স্টপড
এই স্টেটে, একটিভিটি সম্পূর্নভাবে ঢাকা থাকে এবং ইউজার এটা দেখতে পায় না; এটা পেছনভাগে থাকার বিষয়টা বিবেচনা করে। যখন একটিভিটি বন্ধ হয় তখন একটিভিটি ইনসটেন্স এবং এর সকল স্টেট তথ্য যেমন মেম্বার ভেরিয়েবলসকে ধরে রাখা হয় কিন্তু এটা কোন কোড সম্পাদন করতে পারে না।
অন্য স্টেট (ক্রিয়েটেড এবং স্টার্টেড) হচ্ছে অস্থায়ী এবং সিস্টেমটি অতিদ্রুত তাদের থেকে পরবর্তী স্টেটে চলে যায় পরবর্তী লাইফসাইকেল কলব্যাক মেথডকে কল করার মাধ্যমে। তাই সিস্টেমটি onCreate()কে কল করার পর, এটা দ্রুত onStart()কে কল করে, যা দ্রুততার সাথে onResume()কে অনুসরন করে।
এটা মৌলিক একটিভিটি লাইফসাইকেল এর জন্য. এখন আপনি কিছু সুনির্দিষ্ট লাইফ সাইকেল আচরন সম্পর্কে শিখবেন।