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);

通過截圖來看:
        
圖片

圖片

自定義通知框的代碼及效果圖
圖片

圖片

寫完之後的效果圖:
        點擊通知,通知欄的提示效果圖:
圖片

往下拉通知欄,通知框的效果圖如下

圖片
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章