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

অ্যান্ড্রয়েডে লোকাল নোটিফিকেশন শিডিউল করা


AlarmManager দিয়ে ভবিষ্যতে লোকাল নোটিফিকেশন দেখানো

এই উদাহরণটি পূর্বের'article'-এর সমানই — `AlarmManager` এবং `BroadcastReceiver` ব্যবহার করে ৫, ১০, ৩০ সেকেন্ড পর নোটিফিকেশন শিডিউল করা দেখানো হয়েছে। কোড স্ট্রাকচার একই।

প্রধান পার্থক্য/উন্নতি

  • আধুনিক Android-এ (API 23+) `setExactAndAllowWhileIdle()` বা `setAlarmClock()` ব্যবহার করা উচিত।
  • ব্যাটারি অপ্টিমাইজেশন এড়াতে `WorkManager` বেস্ট প্র্যাকটিস।

WorkManager বিকল্প (সুপারিশ করা)

// build.gradle dependencies
implementation "androidx.work:work-runtime-ktx:2.9.0"

// NotificationWorker.java
public class NotificationWorker extends Worker {
    public NotificationWorker(@NonNull Context context, @NonNull WorkerParameters params) {
        super(context, params);
    }

    @NonNull
    @Override
    public Result doWork() {
        showNotification();
        return Result.success();
    }

    private void showNotification() {
        NotificationManager nm = (NotificationManager) getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE);
        NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext(), "work_channel")
                .setContentTitle("WorkManager Notification")
                .setContentText("Scheduled via WorkManager")
                .setSmallIcon(R.drawable.ic_launcher_foreground)
                .setAutoCancel(true);
        // Channel create...
        if (nm != null) nm.notify((int) System.currentTimeMillis(), builder.build());
    }
}

// শিডিউল করা (১০ সেকেন্ড পর)
OneTimeWorkRequest work = new OneTimeWorkRequest.Builder(NotificationWorker.class)
        .setInitialDelay(10, TimeUnit.SECONDS)
        .build();
WorkManager.getInstance(context).enqueue(work);

পুরানো কোড স্ট্রাকচার (AlarmManager)

আপনার প্রদত্ত কোড স্ট্রাকচার ব্যবহার করতে চাইলে(MainActivity, MyNotificationPublisher, Manifest) সেটি ঠিকই আছে। শুধু `PendingIntent.FLAG_IMMUTABLE` (Android 12+) এবং `SCHEDULE_EXACT_ALARM` পারমিশন যোগ করুন।

পরীক্ষা

অ্যাপ রান করুন, মেনু থেকে টাইম সিলেক্ট করুন, নির্দিষ্ট সময় পর নোটিফিকেশন পাবেন।

অ্যান্ড্রয়েডে লোকাল নোটিফিকেশন শিডিউল করা অ্যান্ড্রয়েডে লোকাল নোটিফিকেশন শিডিউল করা

  1. Android-এ WhatsApp মেসেজ শিডিউল করা: ধাপ-ধাপ গাইড

  2. এন্ড্রয়েড ৮ Snooze মাস্টার করুন: ভালো ঘুমের জন্য নোটিফিকেশন ম্যানেজ করুন

  3. অ্যান্ড্রয়েডে পুশ নোটিফিকেশন ইনেবল করার ধাপে ধাপে গাইড

  4. উইন্ডোজ ১০-এ অ্যান্ড্রয়েড ফোনের নোটিফিকেশন পান: ধাপে ধাপে গাইড