Swiftorial Logo
Home
Swift Lessons
Matchups
CodeSnaps
Tutorials
Career
Resources

Local Notifications in Android Development

Introduction

Local notifications are an essential part of any mobile application. They help engage users by sending alerts, reminders, or updates even when the app is not actively in use. In this tutorial, we will explore how to implement local notifications in an Android application from start to finish.

Prerequisites

Before we start, ensure you have the following setup:

  • Android Studio installed
  • Basic knowledge of Android development
  • A test device or emulator

Setting Up the Project

Open Android Studio and create a new project. Follow the standard procedures and select an empty activity for simplicity. Ensure that you have chosen the appropriate SDK version for your project.

Adding Dependencies

In your app-level build.gradle file, ensure you have the following dependencies:

dependencies {
    implementation "androidx.core:core:1.7.0"
    implementation "androidx.core:core-ktx:1.7.0"
    // Other dependencies
}
                

Creating the Notification Channel

Starting from Android 8.0 (API level 26), all notifications must be assigned to a channel. Create a notification channel in your MainActivity:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    CharSequence name = "Channel Name";
    String description = "Channel Description";
    int importance = NotificationManager.IMPORTANCE_DEFAULT;
    NotificationChannel channel = new NotificationChannel("CHANNEL_ID", name, importance);
    channel.setDescription(description);
    NotificationManager notificationManager = getSystemService(NotificationManager.class);
    notificationManager.createNotificationChannel(channel);
}
                

Creating the Notification

To create and display a notification, use the NotificationCompat.Builder class. Below is an example:

NotificationCompat.Builder builder = new NotificationCompat.Builder(this, "CHANNEL_ID")
        .setSmallIcon(R.drawable.notification_icon)
        .setContentTitle("Notification Title")
        .setContentText("This is a local notification.")
        .setPriority(NotificationCompat.PRIORITY_DEFAULT);

// Show the notification
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
notificationManager.notify(1, builder.build());
                

Triggering the Notification

To trigger the notification, you can use various methods such as button clicks or specific events. Here is an example of triggering it on a button click:

Button notifyButton = findViewById(R.id.notifyButton);
notifyButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // Notification code here
    }
});
                

Handling Notification Clicks

To handle notification clicks and open a specific activity, use a PendingIntent:

Intent intent = new Intent(this, TargetActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);

NotificationCompat.Builder builder = new NotificationCompat.Builder(this, "CHANNEL_ID")
        .setSmallIcon(R.drawable.notification_icon)
        .setContentTitle("Notification Title")
        .setContentText("This is a local notification.")
        .setPriority(NotificationCompat.PRIORITY_DEFAULT)
        .setContentIntent(pendingIntent)
        .setAutoCancel(true);
                

Conclusion

Local notifications are a powerful tool to keep users engaged with your application. By following this tutorial, you should now be able to implement basic local notifications in your Android app. Experiment with different notification styles and triggers to fully utilize their potential.