Android development using Notification. Builder

Source: Internet
Author: User

Android development using Notification. Builder

The main function of notification is the prompt function. For example, text messages and push messages.

General steps:

1. Retrieve status notification bar management

Icationicationmanager is a system Service, so it must passGetSystemService (icationication_service) method.


notificationManager = (NotificationManager) this.getSystemService(NOTIFICATION_SERVICE);




2. instantiate icationicationcompat. Builder

3. Set icationicationcompat. Builder

4. Set PendingIntent

5. Display


Methods or parameters:


PendingIntent.getBroadcast(context, requestCode, intent, flags)

PendingIntent.getActivities(context, requestCode, intents, flags)

PendingIntent.getService(context, requestCode, intent, flags)

Flags attribute parameters in:



FLAG_ONE_SHOT indicates that the returned PendingIntent can be executed only once and is automatically canceled after execution.

FLAG_NO_CREATE indicates that if the described PendingIntent does not exist, the corresponding PendingIntent is not created, but NULL is returned.

FLAG_CANCEL_CURRENT indicates that the PendingIntent already exists. Cancel the former and create a new PendingIntent.

FLAG_UPDATE_CURRENT indicates the updated PendingIntent.



2. Introduction to notification. flags Parameters


Notification. FLAG_SHOW_LIGHTS // three-color indicator reminder. This identifier must be added when a three-color indicator is used.

Notification. FLAG_ONGOING_EVENT // initiate a running event (active)

Notification. FLAG_INSISTENT // infinite loop of sound and vibration until the user responds (cancel or open)

Notification. FLAG_ONLY_ALERT_ONCE // after the Notification is initiated, the ringtone and vibration are executed only once.

Notification. FLAG_AUTO_CANCEL // The user automatically disappears after clicking the Notification.

Notification. FLAG_NO_CLEAR // Notification is cleared only when all items are cleared. The Notification is not clear (QQ notifications cannot be cleared, but they are used)


Notification. FLAG_FOREGROUND_SERVICE // indicates the running service.




After setting properties, Set

Notification notification;notification.flags =Notification.FLAG_ONLY_ALERT_ONCE;


3. setVibrate (long [] pattern)

Permission is required to set the vibration.


4. builder. setOngoing ()

If it is set to true, it indicates that it is an ongoing notification. To put it simply, when it is true, it cannot be slide away.


**************************************** **************************************** *******

To use a custom Notification, you must use RemoteViews.

**************************************** **************************************** *******


Instance used:



Implementation Code:

MainActivity. java

Public class MainActivity extends Activity {Button button, button2; icationicationmanager icationmanager; public final static String NEWS_LISTEN = "broadcast"; // used for custom Notification, click Event verification String remoteViewsText = "not clicked"; @ Overridepublic void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); setContentView (R. layout. activity_main); icationicationmanager = (notificationManager) this. g EtSystemService (icationication_service); IntentFilter filter = new IntentFilter (); filter. addAction (NEWS_LISTEN); this. registerReceiver (broadcastReceiver, filter);} public void click (View v) {switch (v. getId () {case R. id. but: // use a normal NotificationNotification. builder builder = new Notification. builder (MainActivity. this); Intent intent = new Intent (MainActivity. this, SecondActivity. class); PendingIntent pen DingIntent = PendingIntent. getActivity (MainActivity. this, 0, intent, PendingIntent. FLAG_UPDATE_CURRENT); builder. setContentIntent (pendingIntent); builder. setSmallIcon (R. drawable. close); // set the icon builder. setWhen (System. currentTimeMillis (); // set the time when the notification comes. // builder. setAutoCancel (true); builder. setContentTitle ("title"); // set the notification title builder. setContentText ("content"); // set the notification content builder. setTicker ("display on the status bar"); // builder is displayed on the status bar. SetOngoing (true);/** // set the sound (audio file in the mobile phone) String path = * Environment. getExternalStorageDirectory (). getAbsolutePath () + * "/Music/a.mp3"; File file = new File (path); * builder. setSound (Uri. fromFile (file); * // get the ringtone builder in the Android multi-media library. setSound (Uri. withAppendedPath (Audio. media. INTERNAL_CONTENT_URI, "5"); // builder. setVibrate (new long [] {4000,}); // a real machine test Notification = builder is required. Build (); // notification. flags = Notification. FLAG_ONGOING_EVENT; icationicationmanager. running y (0, notification); break; case R. id. but2: // ButtonMyNotification (); break; case R. id. but3: // use the downloaded Notification. final Notification can be used after 4.0. builder builder3 = new Notification. builder (MainActivity. this); builder3.setSmallIcon (R. drawable. ic_launcher ). setTicker ("showProgressBar "). setConte NtInfo ("contentInfo "). setOngoing (true ). setContentTitle ("ContentTitle "). setContentText ("ContentText"); // simulate the download process new Thread (new Runnable () {@ Overridepublic void run () {int progress = 0; for (progress = 0; progress <100; progress + = 5) {// set the third parameter of setProgress to true to display the progress bar style builder3.setProgress (100, progress, false) without clear progress ); icationicationmanager. Y (0, (); try {Thread. sleep (1*1000);} cat Ch (InterruptedException e) {System. out. println ("sleep failure") ;}} builder3.setContentTitle ("Download complete "). setProgress (0, 0, false ). setOngoing (false); icationicationmanager. Y (0, ());}}). start (); break; case R. id. but4: // large layout notification can be used after 4.1, BigTextStyleNotification. bigTextStyle textStyle = new Notification. bigTextStyle (); textStyle. setBigContentTitle ("Big title") // Title. setSummaryText ("Summa RyText "). bigText (" Big Text !!!!!!!!!!!!!!!!!!!!!!!!!!!! "+ "!!!!!!!!!!! "+ "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "); // Content Notification. builder builder2 = new Notification. builder (MainActivity. this); builder2.setSmallIcon (R. drawable. icon); // small icon // large icon builder2.setLargeIcon (BitmapFactory. decodeResource (this. getResources (), R. drawable. close); builder2.setTicker ("showBigView_Text "). setContentInfo ("contentInfo"); builder2.setStyle (textStyle); builder2.setAutoCancel (true); icationicationmanager. notify (0, (); break; case R. id. but5: // large layout Notification can be used after 4.1. Large layout picture Notification. bigPictureStyle bigPictureStyle = new Notification. bigPictureStyle (); bigPictureStyle. bigPicture (BitmapFactory. decodeResource (getResources (), R. drawable. back); Notification. builder builder4 = new Notification. builder (MainActivity. this); builder4.setSmallIcon (R. drawable. icon); // small icon // large icon builder4.setLargeIcon (BitmapFactory. decodeResource (this. getResources (), R. drawable. close); builder4.setTicker ("showBigView_Picture "). setContentInfo ("contentInfo"); builder4.setStyle (bigPictureStyle); builder4.setAutoCancel (true); icationicationmanager. using Y (0, (); break; case R. id. but6: // large layout notification can be used after 4.1, InboxStyleNotification. inboxStyle inboxStyle = new Notification. inboxStyle (); inboxStyle. setBigContentTitle ("InboxStyle"); inboxStyle. setSummaryText ("Test"); for (int I = 0; I <5; I ++) {inboxStyle. addLine ("new:" + I);} Notification. builder builder5 = new Notification. builder (MainActivity. this); builder5.setSmallIcon (R. drawable. icon); // small icon // large icon builder5.setLargeIcon (BitmapFactory. decodeResource (this. getResources (), R. drawable. close); builder5.setTicker ("showBigView_InboxStyle "). setContentInfo ("contentInfo"); builder5.setStyle (inboxStyle); builder5.setAutoCancel (true); icationicationmanager. Y (0, (); break ;}@overrideprotected void onDestroy () {super. onDestroy (); // cancel broadcasting to receive this. unregisterReceiver (broadcastReceiver);}/*** custom Notification */public void MyNotification () {RemoteViews remoteViews = new RemoteViews (getPackageName (), R. layout. form); remoteViews. setTextViewText (R. id. TV _form, remoteViewsText); Intent intent2 = new Intent (MainActivity. NEWS_LISTEN); // use broadcast, so INTENT must use the getBroadcast method PendingIntent pendingIntent2 = PendingIntent. getBroadcast (MainActivity. this, 1, intent2, PendingIntent. FLAG_UPDATE_CURRENT); // bind remoteViews. setOnClickPendingIntent (R. id. but_form, pendingIntent2); Notification. builder builderMain = new Notification. builder (MainActivity. this); builderMain. setContent (remoteViews ). setSmallIcon (R. drawable. icon ). setLargeIcon (BitmapFactory. decodeResource (this. getResources (), R. drawable. open )). setOngoing (true ). setTicker ("music is playing"); icationicationmanager. policy (0, builderMain. build ();} // broadcast receiver (used for custom Notification) BroadcastReceiver broadcastReceiver = new BroadcastReceiver () {@ Overridepublic void onReceive (Context c, Intent intent) {if (intent. getAction (). equals (NEWS_LISTEN) {remoteViewsText = "clicked"; MyNotification ();}}};}





Form. xml (custom notification style)


SecondActivity. java is just an activity.



Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.