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

17.3একটি নতুন ইনসটেন্স তৈরী করুন

অধিকাংশ অ্যাপ কিছু ভিন্ন ভিন্ন একটিভিটি অন্তর্ভূক্ত করে যা ইউজার কর্তৃক বিভিন্ন একশন সম্পাদন করাকে অনুমোদন করে। হতে পারে একটি একটিভিটি প্রধান একটিভিটি, যেটা তৈরী হয় যখন ইউজার আপনার অ্যাপ আইকনে ক্লিক করে অথবা একটি স্বতন্ত্র একটিভিটি যা আপনার অ্যাপ একটা ইউজার একশন রেসপন্স এ শুরু করে, সিস্টেমটি Activity এর প্রতিটা নতুন ইনসট্যান্স onCreate()পদ্ধতিকে কল করার মাধ্যমে তৈরী করে থাকে।

আপনাকে অবশ্যই বেসিক অ্যাপলিকেশন স্টার্টআপ লজিক সম্পাদন করতে onCreate()পদ্ধতি বাস্তবায়ন করতে হবে। উদাহরণস্বরূপ, আপনার onCreate()এর বাস্তবায়নে ইউজার ইন্টারফেসকে নির্ধারন করে দেওয়া উচিত এবং সম্ভাব্য ক্লাস-স্কোপ ভেরিয়েবলসকে ইনসটেনশিয়েট করা।

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

TextView mTextView; // Member variable for text view in the layout

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Set the user interface layout for this Activity
    // The layout file is defined in the project res/layout/main_activity.xml file
    setContentView(R.layout.main_activity);

    // Initialize member TextView so we can manipulate it later
    mTextView = (TextView) findViewById(R.id.text_message);

    // Make sure we're running on Honeycomb or higher to use ActionBar APIs
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        // For the main activity, make sure the app icon in the action bar
        // does not behave as a button
        ActionBar actionBar = getActionBar();
        actionBar.setHomeButtonEnabled(false);
    }
}

সতর্কতা: নতুন এপিআই (APIs) থেকে পূরাতন সিস্টেমকে পরিহার করতে SDK INT ব্যবহার করে অ্যান্ড্রযেড ২.০ বা এর চেয়ে উন্নত সংস্করনে এই উপায়ে কাজ করে। পূরাতন সংস্করণ রানটাইম এক্সেপশন কে এনকাউন্টার করে।

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

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

নোট: onCreate()পদ্ধতিটি savedInstanceState নামে একটি প্যারামিটার অন্তর্ভুক্ত করে যা পরবর্র্তী অনুশীলনীতে আলোচনা করা হবে।

ফিগার ২. তিনটা প্রধান কলব্যাক এর উপর জোর দেয়া একটিভিটি লাইফসাইকেল কাঠামোর আরেকটি চিত্র যাতে সিস্টেম ক্রমানুসারে কল করে যখন একটিভিটির একটা নতুন ইনসট্যান্স তৈরী করা হয়: onCreate(), onStart(), এবং onResume()। যকন এই কলব্যাকের ক্রম শেষ হয়, একটিভিটি রিজিউম স্টেট এ পৌছায় যেখানে ইউজার একটিভিটির সাথে যোগাযোগ করতে পারে যতক্ষণ না তারা অন্য একটিভিটিতে চলে যায়।