android Notification使用

今天看了一下android的消息提示Notification,别且写了一个小例子,总结一下,一遍以后使用查找方便,同时希望能给需要的朋友提供帮助。
1.创建一个简单的Notification提示。
使用NotificationCompat.Builder对象指定Notification的UI内容与行为
setContentTitle()设置标题
setContentText( )设置内容
setSmallIcon()设置图标
setContentIntent()添加PendingIntent
使用NotificationManager对象。
notify()进行展示。
下面是一段示例代码:
private void showNotifi() {
// TODO Auto-generated method stub
NotificationManager manager=(NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Intent intent=new Intent(this,NotificationView.class);
intent.putExtra(“notifyId”, notifyId);
PendingIntent pendingIntent=PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder builder=new NotificationCompat.Builder(this);
builder.setContentIntent( pendingIntent);
builder.setContentTitle(“系统提示”);
builder.setContentText(“有新的版本更新”);
builder.setSmallIcon(R.drawable.ic_launcher);
manager.notify(notifyId, builder.build());
}
实现点击跳转的另个界面。另外Notification经持续可见。可以是在操作完成后用
NotificationManager 的cancel()方法取消。
2.Notification的更新。当对同一个时间触发多个Notification的时候,为了避免多次创建Notification。我们可以使用相同的Id.使用NotificationCompat.Builder的setNumber(number)展示消息的条数。
3.展示一个带进度条的Notification
要展示一个确定长度的进度条,调用 setProgress(max, progress, false))方法将进度条添加进notification,然后发布这
个notification,第三个参数是个boolean类型,决定进度条是 indeterminate (true) 还是 determinate (false)。在你操作进
行时,增加progress,更新notification。在操作结束时,progress应该等于max。一个常用的调用 setProgress())的方法
是设置max为100,然后增加progress就像操作的“完成百分比”。
当操作完成的时候,你可以选择或者让进度条继续展示,或者移除它。无论哪种情况下,记得更新notification的文字来
显示操作完成。移除进度条,调用setProgress(0, 0, false))方法.比如:

 protected void showProgressNotation() {
        // TODO Auto-generated method stub
        final NotificationManager manager=(NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        final NotificationCompat.Builder builder=new NotificationCompat.Builder(this);
        builder.setContentTitle("正在下载");
        builder.setContentText("下载进度。。。。");
        builder.setSmallIcon(R.drawable.ic_launcher);

        new Thread(new Runnable() {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                for(int i=0;i<100;i++){
                    try {
                        Thread.sleep(5*1000);
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    builder.setProgress(100, i, false);
                    manager.notify(1, builder.build());
                }
                builder.setProgress(100, 0, false);
                manager.notify(1, builder.build());
            }

        }).start();

    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值