android自定义Notification

原始Notification的使用方法:

一、获取系统服务,得到Notification的管理器:

        mNotifyMrg = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
1)使用通知管理器发送通知:
        mNotifyMrg.notify(R.id.button1, notification);
2)由于需要一个Notification对象,需要新建一个该对象:
        Notification notification = new Notification(R.drawable.ic_launcher, "新通知", System.currentTimeMillis());
                                                                                  通知栏里的图片,                通知一来到状态栏显示的文字,    通知上显示的时间
3)为通知设定点击事件:
        notification.setLatestEventInfo(this, "消息标题", "新内容", contentIntent );  
        3.5)需要一个ContentIntent对象,新建一个该对象:
                PendingIntent contentIntent =PendingIntent.getActivity(this, 0, intent , 0);
                 新建contentIntentd对象使用静态方法使得点击之后显示一个Activity,当然需要一个intent来启动,PendingIntent可以启动
                Service、发送广播。
                 为PendingIntent.getActivity新建一个Intent对象启动本对象:
                    Intent intent = new Intent(this, MainActivity.class);
4)使用mNotifyMrg.notify(R.id.button1, mNotification);

二、定制Notification的显示效果。

        1)新建样式表。带一个progressbar
        2)使用notificaton.contenView 将样式填充至对象中。
        mNotification.contentView = new RemoteViews(getPackageName(), R.layout.my_notifiy_layout);
        注意需要去掉mNotification.setLatestEventInfo(this, null, null, contentIntent );这个点击事件
       

三、更新自定义内容Notification里的组件:先更新该组件,再通知notificaion:

        i = 1;
        mNotification.contentView. setProgressBar(R.id.progressBar1, 100, 10*i++, false); //此处改变其他组件也是类似,如textView,
                 mNotification.contentView. setProgressBar(R.id.progressBar1, 100, 10*i++, false);
                 mNotification.contentView.setViewVisibility();//设置组件的显示开关

        mNotifyMrg. notify(R.id.button1, mNotification);

四。注意:
    不是所有的组件都可以放在Notification的显示内容里,只有类有@RemoteView注解的View才可以。如TextView、ImageView他们都是可以
   生成在不是Activity中的组件。

样例代码: 点击打开链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值