Android自定义Notification的具体实现

Notification通知,在应用中非常常见,比如一些消息推送,收到短信等。下面来看看Android中Notification的机制是怎样的。首先来看完成一个Notification应用的静态结构图:
Notification应用的静态结构图
Android中对Notification的设计使用了建造者模式。Notification包括Action,Intent,以及显示样式等。因此将这些工作封装起来单独完成,是必要的。有关建造者模式的知识可以查看设计模式中的文章。具体的实现步骤分为5步:
1. 创建,并设置意图对象
2. 设置其他状态
3. 建造Notification
4. 加载自定义布局view
5. 获取通知管理器 ,并注册通知
下面看一看具体如何实现一个自定义的Notification。

核心代码:

    private void CreateNotification() {
        NotificationCompat.Builder builder = new Builder(this);

        /** 1 创建,并设置意图对象 */
        // 创建意图对象,当点击通知时,重新加载MainActivity
        Intent i = new Intent(this, MainActivity.class);
        PendingIntent intent = PendingIntent.getActivity(this, 0, i,
                PendingIntent.FLAG_UPDATE_CURRENT);

        builder.setContentIntent(intent);
        /** 2 设置其他状态 */
        builder.setTicker("自定义Notification!");
        builder.setSmallIcon(R.drawable.ic_launcher);
        builder.setAutoCancel(true);

        /** 3 build,建造Notification */
        Notification notification = builder.build();

        /** 4 加载自定义布局view */
        RemoteViews remoteView = new RemoteViews(getPackageName(),
                R.layout.notification_layout);

        // 配置remoteView
        String time = DateFormat.getDateTimeInstance().format(
                new Date().toString());
        String text = getResources().getString(R.string.collapsed, time);
        remoteView.setTextViewText(R.id.textView1, text);


        /** 5 获取通知管理器 ,并注册通知 */
        NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        nm.notify(0, notification);

    }

具体demo可以看http://github.com/Luise-li

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值