最全最适合初学者的Notification示例

双击退出,Notification通知分组,通知属性,通知下载进度条

public class MainActivity extends AppCompatActivity {
    private long time=0;
    private Button button,button1,button2,button3;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button = (Button) findViewById(R.id.button);
        button1=findViewById(R.id.SEND1);
        button2=findViewById(R.id.button1);
        button3=findViewById(R.id.all);

        button3.setOnClickListener(v->{
            NotificationManager manager= (NotificationManager) getSystemService(Service.NOTIFICATION_SERVICE);
            Notification.Builder builder = new Notification.Builder(this);
            //设置小图片
            builder.setSmallIcon(R.mipmap.ic_launcher)
                    //设置标题
                    .setContentTitle("QQ")
                    //设置内容
                    .setContentText("有一位联系人给您发来消息")
                    //设置消失
                    .setAutoCancel(true)
                    //设置Bitmap类型的大图片
                    .setLargeIcon(BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher))
                    //设置通知时间
                    .setWhen(System.currentTimeMillis())
                    //设置震动,呼吸灯
                    .setDefaults(Notification.DEFAULT_ALL)
                    //设置弹出权限
                    .setPriority(Notification.PRIORITY_MAX);

            Notification.BigPictureStyle bigPictureStyle = new Notification.BigPictureStyle();
            bigPictureStyle.bigPicture(BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher_round));

            Notification.InboxStyle inboxStyle = new Notification.InboxStyle();
            inboxStyle.addLine("德玛");
            inboxStyle.addLine("光辉");
            inboxStyle.addLine("赵云");
            inboxStyle.addLine("诺手");

            builder.setStyle(inboxStyle);
            builder.setStyle(bigPictureStyle);
            //绑定
            manager.notify(1,builder.build());

        });

        button2.setOnClickListener(view->{
            NotificationManager manager = (NotificationManager) getSystemService(Service.NOTIFICATION_SERVICE);
            Notification.Builder builder1 = new Notification.Builder(this);
            Notification.Builder builder2 = new Notification.Builder(this);
            Notification.Builder builder3 = new Notification.Builder(this);
            Notification.Builder builder4 = new Notification.Builder(this);

            builder1.setGroup("1");
            builder1.setGroupSummary(true);
            builder1.setSmallIcon(R.mipmap.ic_launcher);
            builder1.setContentTitle("德玛西亚");
            builder1.setContentText("光辉女郎");

            builder2.setGroup("1");
            builder2.setSmallIcon(R.mipmap.ic_launcher);
            builder2.setContentTitle("诺克萨斯");
            builder2.setContentText("德莱厄斯");

            builder3.setGroup("1");
            builder3.setSmallIcon(R.mipmap.ic_launcher);
            builder3.setContentTitle("虚空之地");
            builder3.setContentText("卡兹克");

            builder4.setGroup("1");
            builder4.setSmallIcon(R.mipmap.ic_launcher);
            builder4.setContentTitle("钢铁烈阳");
            builder4.setContentText("太阳妈");

            manager.notify(1,builder1.build());
            manager.notify(2,builder2.build());
            manager.notify(3,builder3.build());
            manager.notify(4,builder4.build());


        });





        button1.setOnClickListener(view->{

            NotificationManager manager= (NotificationManager) getSystemService(Service.NOTIFICATION_SERVICE);
//
            Notification.Builder builder = new Notification.Builder(this);
            Notification build = builder.build();
            builder.setSmallIcon(R.mipmap.ic_launcher);
            builder.setContentText("标题");

            Timer timer = new Timer();

            timer.schedule(new TimerTask() {

                int progress=0;
                @Override
                public void run() {
                    builder.setContentText("正在下载..当前进度值"+progress);
                    builder.setProgress(100,progress,false);
                    progress+=10;
                    manager.notify(3,builder.build());
                    if (progress>=100){
                        builder.setContentText("正在安装....");
                        builder.setProgress(0,0,true);
                        manager.notify(3,builder.build());

                        try {
                            Thread.sleep(5000);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                        manager.cancel(3);
                        timer.cancel();
                    }
                }
            },0,1000);

//
//            Intent intent = new Intent(this, Main2Activity.class);
//            PendingIntent activities = PendingIntent.getActivity(this, 100, intent, PendingIntent.FLAG_UPDATE_CURRENT);
//            builder.setContentIntent(activities);
//            manager.notify(2,build);
//            //以读取消失通知
//            builder.setAutoCancel(true);

        });

        button.setOnClickListener(v->{
            NotificationManager manager= (NotificationManager) getSystemService(Service.NOTIFICATION_SERVICE);
            Notification.Builder builder = new Notification.Builder(this);
            builder.setSmallIcon(R.mipmap.ic_launcher);
            builder.setContentTitle("标题");
            builder.setContentText("内容");
            RemoteViews remoteViews = new RemoteViews(getPackageName(),R.layout.layout);
            remoteViews.setTextViewText(R.id.tv_title,"标题");
            remoteViews.setImageViewResource(R.id.image,R.mipmap.ic_launcher);
            Notification build = builder.build();
            builder.setCustomContentView(remoteViews);
            manager.notify(1,build);

        });





    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode==KeyEvent.KEYCODE_BACK){
            if (System.currentTimeMillis()-time>=2000){
                Toast.makeText(this, "再按一次就退出", Toast.LENGTH_SHORT).show();
                time=System.currentTimeMillis();
                return false;
            }else{
                finish();
            }
        }
        return super.onKeyDown(keyCode, event);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值