Android中常用的消息提醒,一種是Toast彈出提醒內容,一種是AlterDialog彈出框來提醒用戶,還有一種就是消息通知的,用Android經常收到各種通知就是Notifation。Notification是一種具有全局效果的通知,展示在屏幕頂端,表現一個圖標的形式,當用戶向下滑動的時候,展示出通知具體的內容。
Notifation概念
Android很多東西存在版本兼容性問題Android3.0是一個之前在其之前構建Notification推薦使用Notification.Builder構建,Android3.0之后,一般推薦使用NotificationCompat.Builder構建。通知一般通過NotificationManager服務來發送一個Notification對象來完成,NotificationManager是一個重要的系統級服務,該對象位於應用程序的框架層中,應用程序可以通過它像系統發送全局的通知。
這個時候可以先看看要實現的效果:
Demo實現
關於Notifation網上也有很多例子,我就寫一個簡單的,三個按鈕,一個發送,一個取消,還有一個就是新版本的寫法,看下App:
通知事件的寫法,點擊之后的效果就是最開始看到的那張圖片:
notificationManager= (NotificationManager) getSystemService(NOTIFICATION_SERVICE); Notification notification = new Notification(R.drawable.ic_launcher, "通知", System.currentTimeMillis()); //如果是已經通知,自動消失 notification.flags = Notification.FLAG_AUTO_CANCEL; //新建一個打電話的意圖 Intent intent = new Intent(); intent.setAction(Intent.ACTION_CALL); intent.setData(Uri.parse("tel:120")); //將上面的意圖組合到一起 PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, 0); notification.setLatestEventInfo(this, "XX彩票", "恭喜你中獎100萬", contentIntent); notificationManager.notify(100, notification);
取消事件:(注意上面的那個通知的ID號是100):
notificationManager.cancel(100);
新版寫法直接調用Notifation中的Builder方法即可:
Notification notifation= new Notification.Builder(this) .setContentTitle("小官巨腐") .setContentText("現金1.2億,黃金37公斤") .setSmallIcon(R.drawable.ic_launcher) .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher)) .build(); NotificationManager manger= (NotificationManager) getSystemService(NOTIFICATION_SERVICE); manger.notify(0, notifation);
效果如下: