How to Create Notification in Android App Using NotificationManager to Send Notifications

notification in android

Notifications are a powerful tool in Android developer’s toolkit to keep users up-to-date about events happening inside your Android app, even when users are not looking at your app directly.

In fact, a well-timed and useful notification is a great way to tempt users into launching and using your Android app, especially when they haven’t seen our app in a while.

What Generally Goes in an Android App Notification?

The most simple notifications must contain the following.

An Icon: Almost every Android phone user is busy and is always on the go. In fact, there’s no guarantee that the users will even have time to read your notification’s text.

Therefore, users must be able to recognize your app’s notifications at a glance, from the icon alone.

For this reason, you may choose your app’s icon for your notifications, but occasionally, you can also use a different image. For example, if you’re developing an instant messaging app, you can use the sender’s profile pic instead of your app’s icon.

Create images that you want to use and add them to your project’s drawable folder.

Title Text: You can either set your notification’s title by referencing a string resource, or by adding the text to your notification directly.

Detail Text: This is the most important part of notification in Android app, therefore this text part must include everything a user needs to understand what exactly the user is being notified. However, since most mobile users are in a rush, so keep this detailed text short and snappy.

Like everything in the mobile platform, notification in Android has also evolved over time. There are lots of another notification setting you can use, although some of them are quite difficult to integrate if you’re a beginner, therefore you may want to consult with an Android app development company to add them in your Android app correctly.

Now, since you know basics about Android app notification, it’s time to learn how to add one!

Creating Your Android Notification Tutorial

Add dependency in the build.gradle file

implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>

<android.support.constraint.ConstraintLayout 	
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
xmlns:app="http://schemas.android.com/apk/res-auto" 	
android:layout_width="match_parent"        
android:layout_height="match_parent"        
tools:context=".MainActivity">

<Button            
	android:text="Notify"            
	android:textAllCaps="false"            
	android:layout_width="200dp"           
 	android:layout_height="wrap_content"            
	android:background="@drawable/shape_button"            
	android:id="@+id/btnNotify" 
	android:textColor="@android:color/white"            
	android:textSize="18dp" 
	app:layout_constraintTop_toTopOf="parent" 	
app:layout_constraintStart_toStartOf="parent" 	
app:layout_constraintEnd_toEndOf="parent" 	
app:layout_constraintBottom_toBottomOf="parent"/>

</android.support.constraint.ConstraintLayout>

activity_notifymessage.xml

<?xml version="1.0" encoding="utf-8"?>

<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"   
xmlns:app="http://schemas.android.com/apk/res-auto" 	
xmlns:tools="http://schemas.android.com/tools" 	
android:layout_width="match_parent"        
android:layout_height="match_parent" 	
tools:context="com.spaceo.notificationalertdemo.MainActivity">

<TextView
android:layout_width="wrap_content" 
android:layout_height="wrap_content"            
android:text="Hello World!" 
app:layout_constraintBottom_toBottomOf="parent" 	
app:layout_constraintLeft_toLeftOf="parent" 	
app:layout_constraintRight_toRightOf="parent" 	
app:layout_constraintTop_toTopOf="parent"/>

</android.support.constraint.ConstraintLayout>

MainActivity

package com.spaceo.notificationalertdemo
import android.app.Notification
import android.app.NotificationChannel
import android.app.NotificationManager
import android.app.PendingIntent
import android.content.Context
import android.content.Intent
import android.os.Build
import android.os.Bundle
import android.support.v4.app.NotificationCompat
import android.support.v7.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {

private val NOTIFY_ME_ID = 1337
private val NOTIFICATION_CHANNEL_ID = "My Channel"
    
override fun onCreate(savedInstanceState: Bundle?) {    
super.onCreate(savedInstanceState)
        
setContentView(R.layout.activity_main)
       
 //After Click On Notification Jump To NotifyMessage
        
val notificationIntent = Intent(this, NotifyMessage::class.java)
       
 //PendingIntent Create
        
val pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0)
       
//Notification Builder Create
        
val builder = NotificationCompat.Builder(this@MainActivity, NOTIFICATION_CHANNEL_ID)
//Custom Notification Create
builder.setSmallIcon(R.drawable.notification)
       .setContentTitle(resources.getString(R.string.tvTitleofnotification))
       .setContentText(resources.getString(R.string.tvBodyofNotification))
       .setContentIntent(pendingIntent)
builder.notification.flags = builder.notification.flags or Notification.FLAG_AUTO_CANCEL
builder.setAutoCancel(true)
//NotificationManager Create
val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
//If API level 26 or higher than create channel for Notification
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
//channel Create
 val notificationChannel = NotificationChannel(NOTIFICATION_CHANNEL_ID,
                resources.getString(R.string.app_name), NotificationManager.IMPORTANCE_DEFAULT)
            notificationManager.createNotificationChannel(notificationChannel)
}
//Button Click After Generate Notification
 btnNotify.setOnClickListener {
            notificationManager.notify(R.drawable.notification, builder.build())
        }
    }
}

NotifyMessage

package com.spaceo.notificationalertdemo
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
class NotifyMessage : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_notifymessage)
    }
}

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.spaceo.notificationalertdemo">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".NotifyMessage"></activity>
</application>
</manifest>

And Done! Here is the Output:

Main Screen

 

Notification Screen

 

 

Now of course, in this Android app tutorial, we’ve only covered the basics of creating and employing notification in Android app. But, depending on your app and functionalities of your app, you can go much deeper while making sure to be thoughtful when using this powerful tool.

Grab a free copy of Android Notification Example from Github.

This page was last edited on March 19th, 2019, at 7:11.
 
 

Have an Idea for Android App? Let's Discuss!

Get your free consultation now

Leave a Reply

Your email address will not be published. Required fields are marked *