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

অ্যান্ড্রয়েড অ্যাপ প্রথমবার খোলার সময় এক্টিভিটি একবার লঞ্চ করা

ফাস্ট-রান এক্টিভিটি (ওয়েলকাম/টিউটোরিয়াল স্ক্রিন)

এই প্যাটার্নটি অ্যাপ ইনস্টল হওয়ার পর প্রথমবার খোলার সময় একটি নির্দিষ্ট এক্টিভিটি (যেমন ওয়েলকাম স্ক্রিন, টিউটোরিয়াল, বা লগইন পেজ) শুধু একবার দেখানোর জন্য ব্যবহৃত হয়।

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

ধাপ ২: লেআউট

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:text="I will be launched once only" />
</LinearLayout>

ধাপ ৩: SharedPreferences ব্যবহার করে ফ্ল্যাগ চেক করুন

package app.com.sample;

import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {
    String prevStarted = "prevStarted";
    
    @Override
    protected void onResume() {
        super.onResume();
        
        SharedPreferences sharedpreferences = getSharedPreferences(getString(R.string.app_name), Context.MODE_PRIVATE);
        
        if (!sharedpreferences.getBoolean(prevStarted, false)) {
            // প্রথমবার - ফ্ল্যাগ সেট করুন
            SharedPreferences.Editor editor = sharedpreferences.edit();
            editor.putBoolean(prevStarted, Boolean.TRUE);
            editor.apply();
        } else {
            // ইতিমধ্যে দেখা হয়েছে - এক্টিভিটি বন্ধ করুন
            finish();
        }
    }
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

কেন onResume-এ?

onCreate-এ না করে onResume-এ চেক করার কারণ: যদি ব্যবহারকারী অ্যাপ বন্ধ করে না (ব্যাকগ্রাউন্ডে রেখে দেয়) এবং পরে আবার খোলে, তবে onCreate কল হবে না কিন্তু onResume কল হবে। এটি নিশ্চিত করে যে ফ্ল্যাগ চেক সব সময় হয়।

উন্নত সংস্করণ (Application ক্লাসে)

বेहতর প্যাটার্ন হলে একটি বেস Application ক্লাসে এই লজিক রাখা, যাতে যেকোনো এক্টিভিটি থেকে অ্যাক্সেস করা যায়।

আধুনিক বিকল্প

Jetpack DataStore বা Room ডাটাবেস ব্যবহার করে আরও শক্তিশালী এবং টাইপ-সেফ ভাবে এই ডেটা সংরক্ষণ করা যায়।

  1. প্রথমবারের মতো iTunes-এ iPhone ব্যাকআপ করার পদ্ধতি

  2. প্রথম بار মাইক্রোটিক রাউটার সেটআপ গাইড: বাড়ি বা অফিস নেটওয়ার্কের জন্য সহজ ধাপ

  3. Apple TV 4K: সম্পূর্ণ ফার্স্ট-টাইম সেটআপ গাইড

  4. Android-এ Outlook ইমেল সেটআপ করুন — দ্রুত ও সহজ গাইড