notification使用

来源:互联网 发布:做x展架用什么软件 编辑:程序博客网 时间:2024/06/05 15:40

notification基本使用


1.什么是notification?

notification就是通知,展示在屏幕的顶端,首先会表示一个图标的形式,当用户向下滑动时候,展示出通知具体内容。

注意:Android3.0之后,notification的变化比较大。如果要考虑兼容3.0以下的手机版本,需要使用V4或者V7包下Notification。


2。notification使用

一.基本使用。使用V4或者V7下的NotificationCompat做到向下兼容
【注意】
在5.0之后的系统中,官方推荐将通知的图标设置为透明的图标
二、大文本通知
BigTextStyle
【注意】
大文本通知只有处于通知栏顶部时,才会显示大文本。否则就是一个普通的通知
三、大图通知
BigPictureStyle
【注意】
大图通知只有处于通知栏顶部时,才会显示图片。否则就是一个普通的通知
四、进度条通知
setProgress
notificationManager.notify方法可以在子线程中执行
五、自定义通知


3,notification基本使用代码如下
1.获取notificationmanager对象(getSystemService获取系统服务)
2.创建一个notification对象(创建通知的构建者对象)
3.发送通知的提交。
    private NotificationManager mNotificationManager;
 //1、获取NotificationManager对象        //getSystemService获取系统服务        mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);        //2、创建一个Notification对象        //创建通知的构建者对象        NotificationCompat.Builder builder =                new NotificationCompat.Builder(this);        //设置图标:如果没有设置图标,则通知不会出现        builder.setSmallIcon(R.drawable.ic_tab_category_normal);        //设置是否显示时间        builder.setShowWhen(true);        //设置标题        builder.setContentTitle("通知的标题");        //设置内容        builder.setContentText("这是通知的内容");        //设置通知的个数        builder.setNumber(counter++);        Notification notification = builder.build();        //3、发送(提交)通知        //参数1:通知的ID,标识.        //参数2:Notification对象        //注意:如果发送多个通知,但是通知的ID一样,则不会显示多条通知;        // 如果需要显示多条通知,则需要修改ID为不一样        mNotificationManager.notify(counter,notification);

//大文本显示 
mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);        NotificationCompat.Builder builder = new NotificationCompat.Builder(this);        builder.setContentTitle("标题");        builder.setContentText("这是内容简介");        builder.setSmallIcon(R.drawable.ic_night_on);        //显示大文本        NotificationCompat.BigTextStyle bigTextStyle =                new android.support.v4.app.NotificationCompat.BigTextStyle(builder);        bigTextStyle.setSummaryText("xxxx");        bigTextStyle.bigText("ddddd");        mNotificationManager.notify(id++,bigTextStyle.build());

** * 进度条通知 */public class MainActivity extends AppCompatActivity {    private NotificationManager notificationManager;    private int progress ;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);    }    public void click(View view) {        //创建通知        final NotificationCompat.Builder builder = new NotificationCompat.Builder(this);        builder.setSmallIcon(R.mipmap.ic_launcher);        builder.setContentText("简介");        builder.setContentTitle("标题");        //设置进度        //参数1:总进度        //参数2:当前进度        //参数3:布尔类型,true表示总进度不确定,false表示总进度确定(即参数1有效)        builder.setProgress(100,progress,false);        new Thread(new Runnable() {            @Override            public void run() {                while (progress < 100) {                    try {                        Thread.sleep(1000);                    } catch (InterruptedException e) {                        e.printStackTrace();                    }                    Log.d("androidxx", "run: " + progress);//                progress++;                    builder.setContentText(progress + "%" );                    builder.setProgress(100,progress++,false);                    notificationManager.notify(1,builder.build());                }            }        }).start();    }

 //大图        //android.os.Build.VERSION.SDK_INT表示当前手机系统版本号        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) {            Notification.Builder builder = new Notification.Builder(this);            builder.setSmallIcon(R.mipmap.ic_launcher);            builder.setContentTitle("标题");            builder.setContentText("简介");            Notification.BigPictureStyle bigPictureStyle = new Notification.BigPictureStyle(builder);            //将图片资源文件转换成Bitmap对象            Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.a3);            bigPictureStyle.bigPicture(bitmap);            bigPictureStyle.setBigContentTitle("XXXXXX");            bigPictureStyle.setSummaryText("sssssssssssss");            mNotificationManager.notify(1,bigPictureStyle.build());        } else {            NotificationCompat.Builder builder = new NotificationCompat.Builder(this);            builder.setSmallIcon(R.mipmap.ic_launcher);            builder.setContentTitle("标题");            builder.setContentText("简介");            NotificationCompat.BigPictureStyle bigPictureStyle = new NotificationCompat.BigPictureStyle(builder);            //将图片资源文件转换成Bitmap对象            Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.a3);            bigPictureStyle.bigPicture(bitmap);            mNotificationManager.notify(2,bigPictureStyle.build());        }

        /**         * 参数1:上下文对象         * 参数2:请求码,可以是任意的整数         * 参数3:intent对象         * 参数4:PendingIntent的类型         * FLAG_ONE_SHOT表示PendingIntent只能执行一次         * FLAG_CANCEL_CURRENT表示会删除已存在的事件,用新的事件替代         */        PendingIntent pendingIntent = PendingIntent.getActivity(this,1,intent,PendingIntent.FLAG_CANCEL_CURRENT);        builder.setContentIntent(pendingIntent);        notificationManager.notify(1,builder.build());



原创粉丝点击