কম্পিউটার টিউটোরিয়াল

অ্যান্ড্রয়েড অ্যাপে onDestroy() মেথড কল করার পদ্ধতি

এই টিউটোরিয়ালে আমরা শিখব অ্যান্ড্রয়েড এক্টিভিটি লাইফসাইকেলের onDestroy() মেথড কীভাবে কাজ করে এবং এটি কখন কল হয়।

প্রয়োজনীয় ধাপগুলো

ধাপ ১: নতুন প্রজেক্ট তৈরি করুন

Android Studio-তে File → New Project এ যান এবং প্রয়োজনীয় বিবরণ পূরণ করে একটি নতুন প্রজেক্ট তৈরি করুন।

ধাপ ২: লেআউট ফাইল তৈরি করুন

res/layout/activity_main.xml ফাইলে নিচের কোড যোগ করুন:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:app="https://schemas.android.com/apk/res-auto"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="8dp"
        android:layout_marginTop="16dp"
        android:layout_marginRight="8dp"
        android:layout_marginBottom="32dp"
        android:text="Destroy"
        android:textColor="@color/colorPrimary"
        android:textSize="32dp"
        android:textStyle="bold"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

ধাপ ৩: মেইন এক্টিভিটিতে লাইফসাইকেল মেথড ওভাররাইড করুন

src/MainActivity.java ফাইলে নিচের কোড যোগ করুন:

package com.sample.q2;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends AppCompatActivity {
    public static final String MY_TAG = "Destroy";
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.i(MY_TAG, "onCreate");
    }
    
    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.i(MY_TAG, "onDestroy");
    }
}

ধাপ ৪: ম্যানিফেস্ট কনফিগার করুন

AndroidManifest.xml ফাইল:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="app.com.sample">
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

onDestroy() কখন কল হয়?

  • ব্যবহারকারী ব্যাক বাটন চাপায় এবং এক্টিভিটি ফিনিশ হয়
  • finish() মেথড কল করা হয়
  • সিস্টেম মেমরি ফরির জন্য এক্টিভিটি ডিস্ট্রয় করে
  • কনফিগারেশন চেঞ্জ (রোটেশন) হয় এবং android:configChanges সেট নেই

গুরুত্বপূর্ণ নোট

onDestroy() নিশ্চিতভাবে কল হবে এমন নয়। সিস্টেম যদি প্রসেসটি হঠাৎमार করে (force kill) তবে এই মেথড কল হবে না। তাই ক্রিটিক্যাল ডেটা সংরক্ষণের জন্য onPause() বা onStop()-এ কাজ করা উচিত।

লগক্যাটে আউটপুট দেখুন

অ্যাপ চালানোর পর Logcat-এ Destroy ট্যাগ দিয়ে ফিল্টার করলে onCreate এবং onDestroy লগ দেখতে পাবেন।

  1. অ্যান্ড্রয়েড অ্যাপে TextToSpeech তৈরি করার পদ্ধতি

  2. Facebook-এ Android অ্যাপ তৈরি করার পদ্ধতি

  3. অ্যান্ড্রয়েডে ফ্র্যাগমেন্ট থেকে এক্টিভিটি মেথড কল করা

  4. অ্যান্ড্রয়েডে গুগলকে অ্যাপ এক্টিভিটি রেকর্ড করার থেকে রোধ করা