在android的app開發中,在退出程序時,會保留部分服務,因此在頂部的通知欄留下一個圖標,用戶通過點擊圖標可以快捷訪問應用程序。例如360、騰訊qq等。
一、創建通知欄圖標
NotificationManager mNM = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
CharSequence text = getText(R.string.name);
//設置圖標
Notification notification = new Notification(R.drawable.icon, text, System.currentTimeMillis());
//設置圖標是否能被系統清理掉
notification.flags = notification.flags | Notification.FLAG_NO_CLEAR;
// 綁定intent,主要作用就是點擊圖標時能夠進入程序
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, new Intent(this, MyActivity.class), 0);
notification.setLatestEventInfo(this, getText(R.string.name), text, contentIntent);
//發送通知
mNM.notify(R.string.name, notification);
notification.flags有多種設置值,主要有Notification.FLAG_AUTO_CANCEL(可以被系統清理掉)、Notification.FLAG_ONGOING_EVENT(設置正在運行)等。
二、代碼中清除通知欄圖標
有時候,我們在代碼里設置了Notification.FLAG_NO_CLEAR,這樣的通知欄圖標我們通過系統是無法clear掉的,這樣就可能會讓用戶很煩躁,當然有些可以通過第三方軟件強制清除。為了提供用戶體驗性,我們可以在退出時提示用戶,是否要在后台繼續運行程序或服務。下面看代碼,僅僅是清除通知欄圖標代碼:
NotificationManager notificationManager = (NotificationManager) MainActivity.this
.getSystemService(NOTIFICATION_SERVICE);
notificationManager.cancel(R.string.name);//此處的R.string.name就是我們在發送通知時,設置的通知id
就這樣。
因為經驗尚淺,其實我寫博文的主要目的是,為了讓自己以后能夠拿來主義。所以很多不足之處,敬請諒解。