Android Oreo has brought in a ton of changes. This also includes the way in which a user issue notifications in an app. In this article, we will discuss the changes required to be made in the notification department.
Following things are to be kept in mind while issuing notifications:
- Designing a Notification Channel
- Importance of each notification channel
- Notification ID (different from channel id) should not be set to zero.
Before going forward, make sure this line is added in the build.gradle (Module: app) dependencies:
Let’s start with making a notification channel. The method below creates a notification channel:
Let’s see what this method does in detail.
- The method accepts String id, String name, int importance..
- String id: This is the id with which you issue a notification in the notification channel. You use this exact id for multiple notifications in the same channel.
- String name: This is the name of the channel visible when someone taps navigates to Settings -> Apps & Notifications -> [your_app_name] -> App notifications.
int importance: This is the importance level of the channel. The levels are as follows:
- NotificationManager.IMPORTANCE_MIN – shows only in notification shade, no sound or peek.
- NotificationManager.IMPORTANCE_LOW – shows everywhere, doesn’t make sound, doesn’t peek.
- NotificationManager.IMPORTANCE_DEFAULT – shows everywhere, makes sound but doesn’t peek.
- NotificationManager.IMPORTANCE_HIGH – shows everywhere, makes sound and peeks (visual interruption).
- NotificationManager.IMPORTANCE_MAX – this importance level is usually not used. Works similar to IMPORTANCE_HIGH.
Often the IMPORTANCE_DEFAULT parameter is preferred but this produces the notification sound that can be annoying. To silence, add the following line in the makeNotificationChannel() method, just before the last line.
- The method then creates the channel with the parameters.
- The setShowBadge(true) makes the notification available by the Oreo notification dot feature.
- Finally, the notification channel is created by the createNotificationChannel() method of NotificationManager.
Now let us issue a notification. We will use NotificationCompat for backwards compatibility.
The execution proceeds in this way:
- First, the above method initially creates a notification channel with id = “CHANNEL_1” and the name “Example channel”. The id isn’t visible anywhere but the name can be viewed by opening the “App notifications” option of the App Info page.
- Then a NotificationCompat.Builder object is made specifying the context and id as “CHANNEL_1”. A different channel id can be mentioned provided it is made with the makeNotificationChannel() method.
The rest is self-explanatory. The setNumber() method shows a number in the notification dot of the app.
- Finally, the notification id (here 1) is better to not set 0 as in cases where the notification is used for a Foreground service, it will fail to display if the id is 0. On executing the issueNotification() method, we get the following notification:
- Android | 8.0 Oreo
- Android | How to Request permissions in Android Application?
- Android | AdMob Interstitial Ads for Android Studio
- Android | How to add Radio Buttons in an Android Application?
- Android | Android Application File Structure
- Android | AdMob Banner Ads for Android Studio
- Android | Starting with first app/android project
- Android | Running your first Android app
- How to use WebView in Android
- Android | App to Add Two Numbers
- Android | RecyclerView
- Android Menus
- How to use CheckBox in Android
- Android UI Layouts
- Volley Library in Android
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.