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

আপনার একটিভিটি স্টার্ট/রিস্টার্ট করুন

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

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

উদাহরণস্বরূপ, যেহেতু ইউজার এখানে ফিরে আসার আগে দীর্ঘ একটা সময়ের জন্য আপনার অ্যাপ থেকে চলে যাচ্ছে, onStart()পদ্ধতি এটা প্রমান করার একটা ভালো জায়গা যে প্রয়োজনীয় সিস্টেম ফিচার সক্রিয় আছে:

@Override
protected void onStart() {
    super.onStart();  // Always call the superclass method first

    // The activity is either being restarted or started for the first time
    // so this is where we should make sure that GPS is enabled
    LocationManager locationManager =
            (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    boolean gpsEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);

    if (!gpsEnabled) {
        // Create a dialog here that requests the user to enable GPS, and use an intent
        // with the android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS action
        // to take the user to the Settings screen to enable GPS when they click "OK"
    }
}

@Override
protected void onRestart() {
    super.onRestart();  // Always call the superclass method first

    // Activity being restarted from stopped state
}

যখন সিস্টেমটি আপনার একটিভিটি /ধ্বংস করে দেয়, এটা আপনার Activity জন্য onDestroy()পদ্ধতি কল করে। কারন স্বাভাবিকভাবে আপনি onStop()এর সাথে আপনার অধিকাংশ রিসোর্স রিলিজ করে দিয়েছেন, ঠিক এই সময়ে আপনি onDestroy()এ একটা কল রিসিভ করেছেন, অধিকাংশ অ্যাপের এখানে খুব বেশী কিছু করার দরকার নেই। এই পদ্ধতি রিসোর্স পরিষ্কার করে ফেলার একটা শেষ সুযোগ যা মেমরি রিকের দিকে নিয়ে যেতে পাওে, সুতরাং আপনার নিশ্চিত হওয়া উচিত যে অতিরিক্ত থ্রেড ধ্বংস হয়েছে এবং মেথড ট্রেসিং এর মতো দীর্ঘ মেয়াদী কর্মকান্ডও বন্ধ (স্টপড) হয়েছে।