如何豐富程序Notification的使用
public class
Notification
extends Object
implements Parcelable
java.lang.Object
????
android.app.Notification
Class Overview
A class that represents how a persistent notification is to be presented to the user using theNotificationManager
.
The Notification.Builder
has been added to make it easier to construct Notifications.
1、創(chuàng)建NotificationManager對(duì)Notification進(jìn)行管理:
NotificationManager?mNotificationManager?=?(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
2、創(chuàng)建Notification:
Notification?mNotification?=?new?Notification.Builder(getApplicationContext()) .setContentTitle("notification") .setContentText("content") .setSmallIcon(R.drawable.ic_launcher) .setLargeIcon(mBitmap) .setContentIntent(mPendingIntent) .setDefaults(Notification.DEFAULT_ALL) .build();
3、用NotificationManager的notify()方法將通知顯示:
//void?android.app.NotificationManager.notify(int?id,?Notification?notification) //id:?An?identifier?for?this?notification?unique?within?your?application. mNotificationManager.notify(2,mNotification);
此時(shí)Notification還不能響應(yīng)點(diǎn)擊。
接下來(lái)用PendingIntent實(shí)現(xiàn)點(diǎn)擊:
Intent?intent?=?new?Intent(this,NotificationActivity.class); //PendingIntent?android.app.PendingIntent.getActivity(Context?context,?int?requestCode,?Intent?intent,?int?flags) PendingIntent?mPendingIntent?=?PendingIntent.getActivity(this,?0,?intent,?PendingIntent.FLAG_CANCEL_CURRENT);
用Notification.Builder.setContentIntent():
Notification?mNotification?=?new?Notification.Builder(getApplicationContext()) .setContentIntent(mPendingIntent)
部分關(guān)鍵代碼:
//getResources()在onCreate()里,否則報(bào)空指針context為空 //Resources?android.content.Context.getResources() Intent?intent?=?new?Intent(this,NotificationActivity.class); //PendingIntent?android.app.PendingIntent.getActivity(Context?context,?int?requestCode,?Intent?intent,?int?flags) PendingIntent?mPendingIntent?=?PendingIntent.getActivity(this,?0,?intent,?PendingIntent.FLAG_CANCEL_CURRENT); //將qq.jpg轉(zhuǎn)化為Bitmap,使用它設(shè)置大圖標(biāo) Bitmap?mBitmap=BitmapFactory.decodeResource(getApplicationContext().getResources(),?R.drawable.qq); NotificationManager?mNotificationManager?=?(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE); Notification?mNotification?=?new?Notification.Builder(getApplicationContext()) .setContentTitle("notification") .setContentText("content") .setSmallIcon(R.drawable.ic_launcher) .setLargeIcon(mBitmap) .setContentIntent(mPendingIntent) .setDefaults(Notification.DEFAULT_ALL) .build(); /*int?DEFAULT_ALL?Use?all?default?values?(where?applicable).? int?DEFAULT_LIGHTS?Use?the?default?notification?lights.? int?DEFAULT_SOUND?Use?the?default?notification?sound.? int?DEFAULT_VIBRATE?Use?the?default?notification?vibrate.? ?*/ /*setLights(int?argb,?int?onMs,?int?offMs)? Set?the?desired?color?for?the?indicator?LED?on?the?device,?as?well?as?the?blink?duty?cycle?(specified?in?milliseconds). setSound(Uri?sound)? Set?the?sound?to?play. setVibrate(long[]?pattern)? Set?the?vibration?pattern?to?use. long[]?vibrates={0,1000,1000,1000}?notification到來(lái)時(shí)震動(dòng)1s停止1s再震動(dòng)1s vibrates[0]:靜止時(shí)長(zhǎng) vibrates[1]:振動(dòng)時(shí)長(zhǎng) vibrates[2]:靜止時(shí)長(zhǎng) ....?*/ //void?android.app.NotificationManager.notify(int?id,?Notification?notification) //id:?An?identifier?for?this?notification?unique?within?your?application. mNotificationManager.notify(2,mNotification);
將qq.jpg轉(zhuǎn)化為Bitmap
Bitmap?mBitmap=BitmapFactory.decodeResource(getApplicationContext().getResources(),?R.drawable.qq);
還可以設(shè)置Notification到來(lái)時(shí)的振動(dòng),聲音,燈光效果
Notification.Builder
setLights(int argb, int onMs, int offMs)Set the desired color for the indicator LED on the device, as well as the blink duty cycle (specified in milliseconds).
Notification.Builder
setSound(Uri sound)Set the sound to play.
Notification.Builder
setVibrate(long[] pattern)Set the vibration pattern to use.
或者:
Notification.Builder
setDefaults(int defaults)Set which notification properties will be inherited from system defaults.