এই টিউটোরিয়ালে আমরা শিখব অ্যান্ড্রয়েড এক্টিভিটি লাইফসাইকেলের 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 লগ দেখতে পাবেন।