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

নোটিফিকেশন ক্লিক করলে স্বয়ংক্রিয় মুছে যাওয়া (AutoCancel)


setAutoCancel(true) দিয়ে নোটিফিকেশন সেলফ-ক্লিয়ার করা

এটি সবচেয়ে সহজ পদ্ধতি: নোটিফিকেশন বিল্ডার-এ .setAutoCancel(true) সেট করলে ব্যবহারকারী নোটিফিকেশনটিতে ট্যাপ করলে তা অটোমেটিক মুছে যাবে। এটা ডিফল্ট আচরণ হলেও স্পষ্টভাবে সেট করা ভালো প্র্যাকটিস।

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

Android Studio-তে নতুন প্রজেক্ট শুরু করুন।

ধাপ ২: লেআউট

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:padding="16dp"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/btnCreateNotification"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentEnd="true"
        android:layout_centerInParent="true"
        android:text="Auto-Cancel Notification" />

</RelativeLayout>

ধাপ ৩: MainActivity.java

package com.example.autocancelnotification;

import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.NotificationCompat;
import android.view.View;

public class MainActivity extends AppCompatActivity {

    public static final String CHANNEL_ID = "autocancel_channel";
    private static final String DEFAULT_CH = "default";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void createNotification(View view) {
        NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        NotificationCompat.Builder builder = new NotificationCompat.Builder(this, DEFAULT_CH)
                .setContentTitle("Auto-Cancel Notification")
                .setContentText("Tap to dismiss automatically")
                .setTicker("New notification arrived")
                .setSmallIcon(R.drawable.ic_launcher_foreground)
                .setAutoCancel(true); // ★ এখানে true সেট করা হয়েছে

        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
            NotificationChannel ch = new NotificationChannel(CHANNEL_ID, "AutoCancel Channel", NotificationManager.IMPORTANCE_HIGH);
            builder.setChannelId(CHANNEL_ID);
            if (nm != null) nm.createNotificationChannel(ch);
        }

        if (nm != null) nm.notify((int) System.currentTimeMillis(), builder.build());
    }
}

ধাপ ৪: AndroidManifest.xml

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

    <uses-permission android:name="android.permission.VIBRATE" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/Theme.AutoCancel">

        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
</manifest>

ফলাফল

বাটন চাপলে নোটিফিকেশন আসবে। ব্যবহারকারী নোটিফিকেশনটিতে ট্যাপ করলে তা মুছে যাবে এবং নোটিফিকেশন প্যানেল বন্ধ হয়ে যাবে।

নোটিফিকেশন ক্লিক করলে স্বয়ংক্রিয় মুছে যাওয়া (AutoCancel) নোটিফিকেশন ক্লিক করলে স্বয়ংক্রিয় মুছে যাওয়া (AutoCancel)

  1. BroadcastReceiver দিয়ে Android-এ শিডিউল্ড নোটিফিকেশন

  2. অ্যান্ড্রয়েডে নোটিফিকেশন শিডিউল করা (AlarmManager)

  3. অ্যান্ড্রয়েড অ্যাপের জন্য কাস্টম পুশ নোটিফিকেশন তৈরি করার পদ্ধতি

  4. Android-এ রিমাইন্ডার নোটিফিকেশন তৈরি করার পদ্ধতি