nearly Every thing you have to find out about including Notifications with Alarm Supervisor in Android | by Naman Garg | Sep, 2022 will cowl the most recent and most present steerage happening for the world. open slowly appropriately you perceive with ease and accurately. will addition your data proficiently and reliably
Android offers a characteristic that permits you to schedule notifications for later. That is helpful if customers/builders have to do one thing later. For instance, when you want the consumer to remind you of some activity that you just set sooner or later in a to-do record utility. This weblog makes use of AlarmManager and Broadcast Receivers to realize the identical factor on Android API stage 26 or greater.
Notice → We is not going to be utilizing the WorkManager API to schedule alarms, as alarms are a particular use case and will not be a part of the background work. Additionally, the advisable strategy to run actual time jobs is AlarmManager.
Step 1: Configure the info class:
Since I’ve used this information class with RoomDatabase, it’s annotated with Entity however not wanted in any other case. Nevertheless, the principle factor is ID discipline which is a major key and can then be used to arrange a number of notifications directly.
Step 2. Configure the BroadcastReceiver class:
This class might be known as by our AlarmManager at some particular time sooner or later and this class will set off the notification at the moment. We have to add the notification inside this class. Some important issues to think about when including a notification are:
- setContentIntent() = A pending intent is required that might be triggered when a consumer faucets the notification. PendingIntent right here takes 4 parameters that are context, Request code, intention, and a flag. Ensure that so as to add one of many flags like FLAG_IMMUTABLE as it’s required for the most recent APIs.
- setAutoCancel() = Determines whether or not or not the notification will disappear when the consumer faucets it.
- tapResultIntent.flags = Be sure you add the intent flag as per your comfort. I am utilizing FLAG_ACTIVITY_SINGLE_TOP as a result of this app makes use of a single exercise multi-fragment mannequin and in any occasion solely MainActivity exists on the prime of the stack and when a consumer faucets the notification when the app is within the foreground it would not create any new occasion of the train.
- NotificationCompat.Builder() = It’s wanted context Y Channel ID as parameters and we’ve got to ensure that Channel ID is identical because the Channel ID we’ll use later to create the notification channel.
This class right here receives taskInfo object as intent to show notification description as taskInfo.description after which to carry out some duties after we add motion button to notification. Additionally, remember so as to add this class contained in the manifest file.
Step 3: Set the alarm
we might be utilizing the setAlarmClock() technique for setting an alarm as I discovered to be essentially the most dependable when setting a number of alarms sooner or later. There are a number of strategies to set an alarm, comparable to:
Within the setAlarm(activity information: activity information) perform, we first create an occasion of the alarm handler after which set a pending intent to open the AlarmReciver class sooner or later, which is able to then set off the notification. Notice that we’ve got used taskInfo.id Because the Request code which is able to ensure that we’ve got completely different Request code for every alarm and thus be capable of create a number of alarms with a number of notifications.
some issues in regards to the setAlarmClock() –
With this technique, the alarm clock icon will seem within the consumer’s standing bar as if that they had set an alarm with their system’s built-in alarm clock app and when the consumer absolutely opens their notification, they are going to see the alarm time . Tapping the alarm time on the notification will hearth the PendingIntent that we specified within the AlarmClockInfo object which is basicPendingIntent right here.
Whereas organising any actual alarm kind, we have to add the TIME_EXACT_ALARM permission within the manifest file for the most recent APIs.
Step 4 – Create the notification channel
Beginning with Android 8.0 (API stage 26), all notifications have to be assigned to a channel. For instance, right here we are able to create three channels for various precedence duties set by customers, comparable to low, medium and excessive, every with a distinct picture and audio. NotificationChannel takes 3 parameters (channel_id, channel_name, precedence). Channel ID have to be completely different for every channel and Channel Title it ought to describe fundamental details about the channel that the consumer can see throughout the utility data. It solely must be arrange as soon as and will be known as throughout the onCreate() technique.
Step 5: Cancel the alarm (Non-compulsory)
Lets say that we’ve got an alarm scheduled for a activity that the consumer needs to finish; nevertheless, it turned out that the consumer accomplished it a lot earlier. In such case, we have to cancel the alarm. It is vitally straightforward to cancel the alarm, nevertheless, one should make sure that the pendingAttempt used to cancel it should match the pendingAttempt we used to set the alarm, or else it is not going to cancel. It’s not mandatory to place the identical content material contained in the intention we used above as a result of the content material contained in the intention don’t match when evaluating pending intents. (as intent.putExtra)
Step 6: Including alarms when the system restarts
When a tool is turned off, all alarms are canceled by default. To keep away from this, we have to design our app to mechanically reset the alarm if the consumer reboots the system. This ensures that the AlarmManager will proceed to perform with out the consumer having to reset the alarm. We have to add a broadcast receiver class that receives a broadcast each time the system is rebooted.
Right here we’re getting the record of all energetic alarms utilizing our repository and reconfiguring the alarms inside this class. Moreover, we should add RECEIVE_BOOT_COMPLETED permission within the Android manifest file together with the RebootBroadcastReceiver class and its intent filters. These intent filters mean you can obtain the stream when the system is restarted or turned on.
Notice: On newer cellphones, you have to manually allow the autoboot characteristic beneath App Information → Battery Administration → Autoboot so that you can obtain the RECEIVE_BOOT_COMPLETED broadcast. It’s initially turned off for battery administration functions. Mainly, it permits your utility to start out mechanically each time it receives the printed.
Step 7: Add Motion Button (Non-compulsory)
As an example a consumer receives notification of a activity and accomplished it, in that case the consumer want to press a end/full button in order that it may be faraway from the queue of incomplete duties. Now we’ll add an motion button to finish a activity. Right here we is not going to open any exercise when the consumer touches the button, however we’ll do some work within the background. For this, we have to add some code contained in the AlarmReceiver class we created earlier and add one other broadcast receiver class that can obtain the printed to carry out some motion when a activity completes. Contained in the AlarmReceiver class, we have to add yet one more pending intent that might be answerable for opening the OnCompletedBroadcastReceiver class.
Additionally, add this class within the AndroidManifest.xml file.
I want the article almost Every thing you have to find out about including Notifications with Alarm Supervisor in Android | by Naman Garg | Sep, 2022 provides keenness to you and is helpful for tallying to your data
Everything you need to know about adding Notifications with Alarm Manager in Android | by Naman Garg | Sep, 2022