বাংলায় অ্যান্ড্রয়েড সহায়িকা - Bangla Android Guide

একটিভিটি স্টপ এবং রিস্টার্ট করা

(http://developer.android.com/training/basics/activity-lifecycle/stopping.html)

একটিভিটি লাইফসাইকেলের মধ্যে সার্বিকভাবে আপনার একটিভিটি স্টপ এবং রিস্টার্ট হওয়া একটা গুরুত্বপূর্ণ প্রক্রিয়া যা ইউজারের এ বিষয়ে উপলব্ধিকে নিশ্চিত করবে যাতে আপনার অ্যাপ সবসময় জিবন্ত থাকবে এবং তাদের যে অগ্রগতি তা ধরে রাখবে। নিচে কিছু চিত্র তুলে ধরা হলো যাতে আপনার একটিভিটি স্টপ এবং রিস্টার্ট করবে:

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

  • ইউজার আপনার অ্যাপে এমন একটা কাজ করে, যা আরেকটি নতুন একটিভিটি শুরু করিয়ে দেয়। যখন দ্বিতীয় একটিভিটি তৈরী হয় তখন চলতি একটিভিটিটি বন্ধ (স্টপ) হয়ে যায়। এই সময় ইউজার যদি *Back button চাপে তাহলে প্রথম একটিভিটিটি আবার শূরু হবে (রিস্টার্টেড)।

  • যখন ইউজার আপনার অ্যাপ ব্যবহার করার সময় একটি ফোন কল রিসিভ করে।

Activity ক্লাস onStop()এবংonRestart()এই দুই ধরনের লাইফসাইকেল পদ্ধতি প্রদান করে, যা আপনার একটিভিটি কীভাবে স্টপ এবং রিস্টার্টকে ধারন করবে তা আপনাকে সুনির্দিষ্টভাবে করতে দেয়। এটা পজ অবস্থানের মতো নয় যা একটি আংশিক ইউজার ইন্টারফেস বাধাকে চিহ্নিত করে বরং স্টপ অবস্থা এর নিশ্চয়তা দেয় যে ইউজার ইন্টাফেস আর দৃশ্যমান হবে না এবং ইউজারের ফোকাস একটি ভিন্ন একটিভিটিতে থাকবে (অথবা একটা সম্পূর্ণ ভিন্ন অ্যাপে)।

নোট: কারন সিস্টেমটি আপনার Activity ইনসটেন্সকে সিস্টেম মেমরিতে ধরে রাখে যখন এটা বন্ধ (স্টপড) হয়, এটা সম্ভব যে আপনার onStop()এবং onRestart() অথবা এমনকি onStart()পদ্ধতিকেও বাস্তবায়নের দরকার নেই। অধিকাংশ একটিভিটি যা অপেক্ষাকৃতভাবে সহজ, একটিভিটি সুন্দরভাবে স্টপ এবং রিস্টার্ট করতে পারবে এবং চলতি কাজকে পজ দিতে এবং সিস্টেম রিসোর্স থেকে সংযোগ বিচ্ছিন্ন করতে আপনার শুধুমাত্র onPause()ব্যবহার করতে হতে পারে।

Figure 1. যখন ইউজার আপনার একটিভিটি ত্যাগ করে, সিস্টেমটি একটিভিটি বন্ধ (স্টপ) করতে onStop()কে কল করে (১)। যদি ইউজার একটিভিটি বন্ধ (স্টপড) থাকা অবস্থায় যখন আবার ফিরে আসে, সিস্টেমটি দ্রুত onStart() (৩) এবং onResume() (৪) কে অনুসরন করে onRestart()কে কল করে (২)। উল্লেখ্য যে কোন বিষয়টা একটিভিটিকে স্টপ করার কারন এটা কোন বিষয় নয়, সিস্টেম সবসময়ই onStop()কে কল করার পূর্বে onPause()কে কল করে।