安卓通知欄通知是我們經(jīng)常會(huì)接觸到的,它可以提醒我們某些應(yīng)用的最新推送消息婉陷,社交軟件等應(yīng)用的信息通知帚称,還可以在通知欄上顯示例如播放器等常駐的功能。
接下來我們通過代碼創(chuàng)建一個(gè)通知:
//全局通知管理者秽澳,通過獲取系統(tǒng)服務(wù)獲取
NotificationManager mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
//通知欄構(gòu)造器,創(chuàng)建通知欄樣式
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this);
// 將來意圖世杀,用于點(diǎn)擊通知之后的操作,內(nèi)部的new intent()可用于跳轉(zhuǎn)等操作
PendingIntent mPendingIntent = PendingIntent.getActivity(this, 1, new Intent(), Notification.FLAG_AUTO_CANCEL);
接下來設(shè)置通知樣式:
//設(shè)置通知欄標(biāo)題
mBuilder.setContentTitle("測(cè)試標(biāo)題")
//設(shè)置通知欄顯示內(nèi)容
.setContentText("測(cè)試內(nèi)容")
//設(shè)置通知欄點(diǎn)擊意圖
.setContentIntent(mPendingIntent)
//通知首次出現(xiàn)在通知欄,帶上升動(dòng)畫效果的
.setTicker("測(cè)試通知來啦")
//通知產(chǎn)生的時(shí)間肝集,會(huì)在通知信息里顯示瞻坝,一般是系統(tǒng)獲取到的時(shí)間
.setWhen(System.currentTimeMillis())
//設(shè)置該通知優(yōu)先級(jí)
.setPriority(Notification.PRIORITY_DEFAULT)
//設(shè)置這個(gè)標(biāo)志當(dāng)用戶單擊面板就可以讓通知將自動(dòng)取消
.setAutoCancel(true)
//使用當(dāng)前的用戶默認(rèn)設(shè)置
.setDefaults(Notification.DEFAULT_VIBRATE)
//設(shè)置通知小ICON(應(yīng)用默認(rèn)圖標(biāo))
.setSmallIcon(R.drawable.ic_launcher);
最后在發(fā)送通知
mNotificationManager.notify(notifyId, mBuilder.build());
簡(jiǎn)易的通知欄notification就創(chuàng)建完成。
補(bǔ)充資料:
而PendingIntent可以看作是對(duì)Intent的包裝。PendingIntent主要持有的信息是它所包裝的Intent和當(dāng)前Application的Context所刀。正由于PendingIntent中保存有當(dāng)前Application的Context衙荐,使它賦予帶他程序一種執(zhí)行的Intent的能力,就算在執(zhí)行時(shí)當(dāng)前Application已經(jīng)不存在了浮创,也能通過存在PendingIntent里的Context照樣執(zhí)行Intent忧吟。
你可以通過點(diǎn)擊notification跳轉(zhuǎn)activity,網(wǎng)頁等intent的一些操作斩披,還可以通過service進(jìn)行操作溜族。
例如跳轉(zhuǎn)網(wǎng)頁:
//跳轉(zhuǎn)url的intent
Intent it = new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.babybus.com"));
//配置在pengdingintent中
PendingIntent pendingIntent = PendingIntent.getActivity(App.get().mainActivity,requestCode, it, NOTIFY_FLG);
通過service則可以:
Intent clickIntent = new Intent(App.get().mainActivity, ClickService.class);
clickIntent.putExtra("text","點(diǎn)擊測(cè)試");
PendingIntent pendingIntent = PendingIntent.getService(App.get().mainActivity, requestCode, clickIntent, NOTIFY_FLG);
創(chuàng)建service,在AndroidManifest.xml中注冊(cè)垦沉,在其中的onStartCommand中獲取從intent中得到的參數(shù)煌抒。
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
String text = intent.getStringExtra("text");
//通過該text進(jìn)行操作
return super.onStartCommand(intent, flags, startId);
}
參考資料:[http://blog.csdn.net/vipzjyno1/article/details/25248021/]
_本站文章為 寶寶巴士 SD.Team 原創(chuàng),轉(zhuǎn)載務(wù)必在明顯處注明:(作者官方網(wǎng)站: 寶寶巴士 ) _
轉(zhuǎn)載自【寶寶巴士SuperDo團(tuán)隊(duì)】原文鏈接: http://www.reibang.com/p/5bbc2a73ba9c