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

Kotlin-এ Android অ্যাক্টিভিটি ফোরগ্রাউন্ডে আনার পদ্ধতি (টপ অফ স্ট্যাক)

পূর্ব প্রস্তুতি

এই উদাহরণটি `Intent.FLAG_ACTIVITY_REORDER_TO_FRONT` ব্যবহার করে ইতিমধ্যে ব্যাকস্ট্যাকে থাকা একটি অ্যাক্টিভিটি ফোরগ্রাউন্ডে আনার পদ্ধতি দেখায়।

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

Android Studio-তে File → New Project নির্বাচন করুন।

ধাপ ২: activity_main.xml লেআউট

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="4dp">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="70dp"
        android:background="#008080"
        android:padding="5dp"
        android:text="TutorialsPoint"
        android:textColor="#fff"
        android:textSize="24sp"
        android:textStyle="bold" />

</RelativeLayout>

ধাপ ৩: MainActivity.kt-এ ইয়েন্ট ফ্ল্যাগ সেট করুন

import android.content.Intent
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        title = "KotlinApp"

        val intent = Intent(this, NewActivity::class.java)
        // যদি NewActivity ইতিমধ্যে ব্যাকস্ট্যাকে থাকে, তবে তা ফোরগ্রাউন্ডে আনবে
        intent.flags = Intent.FLAG_ACTIVITY_REORDER_TO_FRONT
        startActivity(intent)
    }
}

ধাপ ৪: NewActivity.kt (দ্বিতীয় অ্যাক্টিভিটি)

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle

class NewActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_new)
        title = "KotlinApp"
    }
}

activity_new.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="4dp">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="70dp"
        android:background="#008080"
        android:padding="5dp"
        android:text="TutorialsPoint"
        android:textColor="#fff"
        android:textSize="24sp"
        android:textStyle="bold" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="New Activity"
        android:textAlignment="center"
        android:textColor="@android:color/holo_blue_dark"
        android:textSize="24sp"
        android:textStyle="bold" />

</RelativeLayout>

ধাপ ৫: AndroidManifest.xml (দুই অ্যাক্টিভিটি ডিক্লেয়ার)

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="com.example.reorderfront">

    <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>

        <activity android:name=".NewActivity" />

    </application>
</manifest>

পরীক্ষা করুন

  1. অ্যাপ চালান → NewActivity খুলবে।
  2. হোম বাটন চাপে অ্যাপ মিনিমাইজ করুন।
  3. আরেকবার অ্যাপ লঞ্চ করুন (লঞ্চার থেকে)।
  4. MainActivity-র `onCreate`-এ ইয়েন্ট ফ্ল্যাগের কারণে NewActivity ফোরগ্রাউন্ডে আসবে, নতুন ইনস্ট্যান্স তৈরি হবena।

অন্যান্য উপযোগী ফ্ল্যাগ

  • `FLAG_ACTIVITY_SINGLE_TOP` - যদি টপে থাকে তবে নতুন ইনস্ট্যান্স তৈরি হয় না।
  • `FLAG_ACTIVITY_CLEAR_TOP` - টার্গেট অ্যাক্টিভিটির উপরের সব অ্যাক্টিভিটি ক্লিয়ার করে দেয়।
  • `FLAG_ACTIVITY_NEW_TASK` - নতুন টাস্কে শুরু করে।
  1. অ্যান্ড্রয়েডে এক্টিভিটি স্ট্যাকের শীর্ষ এক্টিভিটির নাম কিভাবে পেতে হয়?

  2. Kotlin ব্যবহার করে Android-এ প্রোগ্রামেটিক্যালি ImageView-এর মার্জিন সেট করা

  3. Kotlin ব্যবহার করে Android অ্যাপ ব্যাকগ্রাউন্ডে চলছে কিনা চেক করা

  4. Kotlin ব্যবহার করে Android-এ বাটন ক্লিক করে নতুন অ্যাক্টিভিটি শুরু করা