Android19之消息提醒機制(Notification)
Notification:通知欄信息提醒。
分兩大步:
一、創建一個通知
普通的屬性:通知聲音,點擊通知框後是否自動取消
1、通知欄:通知欄就是手機屏幕最上方來消息時提醒出現的,包括Image、Text
2、通知框:手機屏幕從最上方往下拉後出現通知框,包括:Image、Text、Time... (可以自定義佈局)
最重要的是其中包括的一個:延遲Intent(意圖)
先手打一遍:
//構建通知構建器,Context:上下文,MainActivity.this
Notification.Builder builder = new Notification.Builder(MainActivity.this);
//構建器的一些基本屬性
//點擊通知框後,是否自動取消通知框
builder.setAutoCancel(true);
//設置通知聲音提醒,默認系統提供的聲音
builder.setDefaults(Notification.DEFAULT_SOUND);
//設置通知欄的圖片
builder.setSmailIcon(R.drawable....);
//設置通知欄的滾屏文字
builder.setTicker("班級通知");
//設置通知的時間
builder.setWhen(System.CurrentTimeMillis());
//設置通知框的標題跟內容,圖片跟通知欄中的一樣
builder.setContentTitle("班級通知");
bulider.setContentText("停電通知,昨天停電");
//設置通知框時可以自定義通知框的佈局。
//遠程視圖,
RemoteViews remoteviews = new RemoteViews(getPackageName(), R.layout.notification);
//可以動態設置佈局中TextView中的值,
remoteviews.setTextViewText(R.id.tv_notification, "班級來通知了。。。。");
builder.setContent(remoteviews);
//設置好了通知欄和通知框後,在通知框上加入Intent,延遲意圖,PendingIntent :意思是點擊了通知框之後,進入到另外的組件
//準備一個打電話的Intent,需要設置權限
Intent intent = new Intent();
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:110"));
//context:上下文、 requestCode:請求碼 intent:意圖,當點擊通知框後要進入的組件,所以要提前準備好一個Intent, flags:FLAG_UPDATE_CURRENT更新當前通知狀態,
pendingIntent pendingIntent = new PendingIntent(MainActivity.this, 0, intent, FLAG_UPDATE_CURRENT);
//將創建好的延遲意圖加入到構建器中
builder.setContentIntent(pendingIntent);
//構建器設置完成,真正的構建一個通知
Notification notification = builder.getNotification();
二 、發通知,
1、通過Context獲取通知管理器服務,創建通知管理器NotificationManager
NotificationManager manager = getSystemService(Context.NOTIFICATION_SERVICE);
2、NotifivationManager發通知
manager.notify(1,notification);
通過截圖來看:
自定義通知框的代碼及效果圖
寫完之後的效果圖:
點擊通知,通知欄的提示效果圖:
往下拉通知欄,通知框的效果圖如下
分兩大步:
一、創建一個通知
普通的屬性:通知聲音,點擊通知框後是否自動取消
1、通知欄:通知欄就是手機屏幕最上方來消息時提醒出現的,包括Image、Text
2、通知框:手機屏幕從最上方往下拉後出現通知框,包括:Image、Text、Time... (可以自定義佈局)
最重要的是其中包括的一個:延遲Intent(意圖)
先手打一遍:
//構建通知構建器,Context:上下文,MainActivity.this
Notification.Builder builder = new Notification.Builder(MainActivity.this);
//構建器的一些基本屬性
//點擊通知框後,是否自動取消通知框
builder.setAutoCancel(true);
//設置通知聲音提醒,默認系統提供的聲音
builder.setDefaults(Notification.DEFAULT_SOUND);
//設置通知欄的圖片
builder.setSmailIcon(R.drawable....);
//設置通知欄的滾屏文字
builder.setTicker("班級通知");
//設置通知的時間
builder.setWhen(System.CurrentTimeMillis());
//設置通知框的標題跟內容,圖片跟通知欄中的一樣
builder.setContentTitle("班級通知");
bulider.setContentText("停電通知,昨天停電");
//設置通知框時可以自定義通知框的佈局。
//遠程視圖,
RemoteViews remoteviews = new RemoteViews(getPackageName(), R.layout.notification);
//可以動態設置佈局中TextView中的值,
remoteviews.setTextViewText(R.id.tv_notification, "班級來通知了。。。。");
builder.setContent(remoteviews);
//設置好了通知欄和通知框後,在通知框上加入Intent,延遲意圖,PendingIntent :意思是點擊了通知框之後,進入到另外的組件
//準備一個打電話的Intent,需要設置權限
Intent intent = new Intent();
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:110"));
//context:上下文、 requestCode:請求碼 intent:意圖,當點擊通知框後要進入的組件,所以要提前準備好一個Intent, flags:FLAG_UPDATE_CURRENT更新當前通知狀態,
pendingIntent pendingIntent = new PendingIntent(MainActivity.this, 0, intent, FLAG_UPDATE_CURRENT);
//將創建好的延遲意圖加入到構建器中
builder.setContentIntent(pendingIntent);
//構建器設置完成,真正的構建一個通知
Notification notification = builder.getNotification();
二 、發通知,
1、通過Context獲取通知管理器服務,創建通知管理器NotificationManager
NotificationManager manager = getSystemService(Context.NOTIFICATION_SERVICE);
2、NotifivationManager發通知
manager.notify(1,notification);
通過截圖來看:
自定義通知框的代碼及效果圖
寫完之後的效果圖:
點擊通知,通知欄的提示效果圖:
往下拉通知欄,通知框的效果圖如下
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.