ফাস্ট-রান এক্টিভিটি (ওয়েলকাম/টিউটোরিয়াল স্ক্রিন)
এই প্যাটার্নটি অ্যাপ ইনস্টল হওয়ার পর প্রথমবার খোলার সময় একটি নির্দিষ্ট এক্টিভিটি (যেমন ওয়েলকাম স্ক্রিন, টিউটোরিয়াল, বা লগইন পেজ) শুধু একবার দেখানোর জন্য ব্যবহৃত হয়।
ধাপ ১: প্রজেক্ট তৈরি
ধাপ ২: লেআউট
<?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 ডাটাবেস ব্যবহার করে আরও শক্তিশালী এবং টাইপ-সেফ ভাবে এই ডেটা সংরক্ষণ করা যায়।