Notification是一種具備全局效果的通知,它展現在屏幕的頂端,首先會表現爲一個圖標的形式,當用戶向下滑動的時候,展現出通知具體的內容。咱們在用手機的時候,若是來了短信,而咱們沒有點擊查看的話,在手機的最上邊的狀態欄裏有一個短信的小圖標提示,這個提示效果就是用Notification來作。android
狀態通知欄主要涉及到2個類:Notification 和NotificationManager網絡
Notification:通知信息類,它裏面對應了通知欄的各個屬性app
NotificationManager:是狀態欄通知的管理類,負責發通知、清除通知等操做。ide
使用的基本流程:佈局
另外咱們還能夠調用NotificationManager的cancel()方法取消通知ui
setContentTitle(CharSequence):設置標題 this
首先定義兩個簡單的按鈕,這裏就不寫出來了,接着在MainActivity類實現功能 ,代碼以下所示:spa
package com.nyl.notification; import android.app.Activity; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends Activity implements View.OnClickListener { private Context context; private NotificationManager notificationManager; private Notification notification; Bitmap bitmap = null; //位圖 private static final int NOTIFICATION_1 = 1; private Button btnShow; private Button btnClose; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); context = this; //建立圖片的Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.mipmap.activity_main); notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); initView(); //初始化控件 } /** * 初始化佈局控件 */ private void initView() { btnShow = (Button) findViewById(R.id.btnShow); btnClose = (Button) findViewById(R.id.btnClose); btnShow.setOnClickListener(this); btnClose.setOnClickListener(this); } @Override public void onClick(View view) { switch (view.getId()){ case R.id.btnShow: // //定義一個PendingIntent點擊Notification後啓動一個Activity Intent intent = new Intent(context,OtherActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(context,0,intent,0); //設置圖片,通知標題,發送時間,提示方式等屬性 Notification.Builder builder = new Notification.Builder(this); //標題 builder.setContentTitle("狀態欄通知") .setContentText("狀態欄會顯示一個通知欄的圖標") //內容 .setSubText("豐富你的程序,運用手機多媒體") //內容下面的一小段文字 .setTicker("收到Notification信息") //收到信息後狀態顯示的文字信息 .setWhen(System.currentTimeMillis()) //設置通知時間 .setSmallIcon(R.mipmap.ic_launcher) //設置小圖片 .setLargeIcon(bitmap) //設置大圖片 .setDefaults(Notification.DEFAULT_LIGHTS | Notification.DEFAULT_VIBRATE) //設置默認的三色燈與振動器 .setSound(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.kalimba)) //設置自定義的提示音 .setAutoCancel(true) //設置點擊後取消Notification .setContentIntent(pendingIntent); //設置pendingIntent notification = builder.build(); notificationManager.notify(NOTIFICATION_1,notification); break; case R.id.btnClose: //除了能夠根據ID來取消Notification外,還能夠調用cancelAll();關閉該應用產生的全部通知 notificationManager.cancel(NOTIFICATION_1); //取消Notification break; } } }
點擊【顯示普通的狀態欄通知】按鈕,運行效果以下:.net
在手機的最上邊的狀態欄裏出現了【收到Notification信息】的提示消息,向下滑動,能夠看到通知的圖標,標題,子標題這些內容,以下圖所示:code
點擊通知,就能夠看到通知的詳細內容,以下圖所示:
這裏是顯示一張照片
點擊【關閉狀態欄通知】按鈕是關閉手機狀態欄上顯示通知消息,關閉以後,就看不到了。這裏不貼圖了。有興趣的園友本身複製代碼去動手體驗吧。
關於Notification的基本用法就先介紹這麼多。