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

通过截图来看:
        
Android19之消息提醒机制(Notification)_第1张图片

Android19之消息提醒机制(Notification)_第2张图片

自定义通知框的代码及效果图
Android19之消息提醒机制(Notification)_第3张图片

Android19之消息提醒机制(Notification)_第4张图片

写完之后的效果图:
        点击通知,通知栏的提示效果图:
Android19之消息提醒机制(Notification)_第5张图片

往下拉通知栏,通知框的效果图如下

Android19之消息提醒机制(Notification)_第6张图片

你可能感兴趣的:(Android学习之路)