博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Androidn Notification的使用,解决找不到setLatestEventInfo方法
阅读量:5924 次
发布时间:2019-06-19

本文共 3345 字,大约阅读时间需要 11 分钟。

转自:http://blog.csdn.net/songyachao/article/details/51245370#comments

 

今天使用4.0.3使用

Notification notification2 = new Notification(R.drawable.advise2,        "通知测试", System.currentTimeMillis());notification2.setLatestEventInfo(getActivity(), "testTitle", "testContent", null);

 

结果androidstudio报错,setLatestEventInfo该方法找不到,经过查证官方在API Level 11中,该函数已经被替代,不推荐使用了。古在4.0.3平台也就是API Level 15中,使用Notification的setLatestEventInfo()函数时,显示setLatestEventInfo()效果。建议使用Notification.Builder来创建 notification 实例

1 Notification.Builder builder1 = new Notification.Builder(MainActivity.this); 2 builder1.setSmallIcon(R.drawable.advise2); //设置图标 3 builder1.setTicker("显示第二个通知");  4 builder1.setContentTitle("通知"); //设置标题 5 builder1.setContentText("点击查看详细内容"); //消息内容 6 builder1.setWhen(System.currentTimeMillis()); //发送时间 7 builder1.setDefaults(Notification.DEFAULT_ALL); //设置默认的提示音,振动方式,灯光 8 builder1.setAutoCancel(true);//打开程序后图标消失 9 Intent intent =new Intent (MainActivity.this,Center.class);10 PendingIntent pendingIntent =PendingIntent.getActivity(MainActivity.this, 0, intent, 0);11 builder1.setContentIntent(pendingIntent);12 Notification notification1 = builder1.build();13 notificationManager.notify(124, notification1); // 通过通知管理器发送通知

 

如果该通知只是起到 “通知”的作用,不希望用户点击后有相应的跳转,那么,intent,pendingIntent这几行代码可以不写

1 Notification.Builder builder = new Notification.Builder(MainActivity.this);2 builder.setSmallIcon(R.drawable.advise);3  builder.setTicker("显示第一个通知");4 builder.setContentTitle("第一个通知");5 builder.setContentText("每天进步一点点");6 builder.setWhen(System.currentTimeMillis()); //发送时间7 builder.setDefaults(Notification.DEFAULT_ALL);8 Notification notification = builder.build();9 notificationManager.notify(123, notification);

 

第一个具有点击提示有跳转功能,后面一个没有跳转功能,只是提示作用

以下借鉴其他博主的总结:

 在不同的版本下Notification使用有一些不同,涉及到改成Builder的使用,现在网上大多数资料还是API Level 11版本前的用法介绍,如果不熟悉的话,会绕一些弯路。

    现在总结如下,希望对以后使用的程序员有所帮助。
    低于API Level 11版本,也就是 2.3.3以下的系统中,setLatestEventInfo()函数是唯一的实现方法。前面的有关属性设置这里就不再提了,网上资料很多。

Intent  intent = new Intent(this,MainActivity);  PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_ONE_SHOT);  notification.setLatestEventInfo(context, title, message, pendingIntent);          manager.notify(id, notification);

 

    高于API Level 11,低于API Level 16 (Android 4.1.2)版本的系统中,可使用Notification.Builder来构造函数。但要使用getNotification()来使notification实现。此时,前面版本在notification中设置的Flags,icon等属性都已经无效,要在builder里面设置。

Notification.Builder builder = new Notification.Builder(context)              .setAutoCancel(true)              .setContentTitle("title")              .setContentText("describe")              .setContentIntent(pendingIntent)              .setSmallIcon(R.drawable.ic_launcher)              .setWhen(System.currentTimeMillis())              .setOngoing(true);  notification=builder.getNotification();

 

    高于API Level 16的版本,就可以用Builder和build()函数来配套的方便使用notification了。

Notification notification = new Notification.Builder(context)             .setAutoCancel(true)             .setContentTitle("title")             .setContentText("describe")             .setContentIntent(pendingIntent)             .setSmallIcon(R.drawable.ic_launcher)             .setWhen(System.currentTimeMillis())             .build();

 

 

    【注意点】:

    在构造notification的时候有很多种写法,但是要注意,用
Notification notification = new Notification();
这种构建方法的时候,一定要加上notification.icon这个设置,不然,程序虽然不会报错,但是会没有效果。

你可能感兴趣的文章
maven pom聚合与继承
查看>>
排它锁 共享锁的区别
查看>>
三层嵌套oracle数据库记录分页sql语句
查看>>
JAVA图形界面(GUI)之表格
查看>>
Apache Storm 官方文档 —— 基础概念
查看>>
A - Farey Sequence——(筛法求欧拉函数)
查看>>
Compare Keys and multi Hash Stored in Redis
查看>>
(六十九)复合语句
查看>>
Picasso源码阅读笔记四
查看>>
mpvue学习笔记-之微信小程序数据请求的封装
查看>>
Java8之Stream-Stream原理
查看>>
问题总结
查看>>
python错误调试
查看>>
难追难回味
查看>>
如何构建Vue大型应用
查看>>
Leetcode 498:对角线遍历Diagonal Traverse(python3、java)
查看>>
学习jQuery-----(1)
查看>>
RQPro 公募 FOF 策略实例 2——基金投资风格箱、业绩趋势和反转策略、及风险最小化资产配置...
查看>>
解决因为机器性能问题导致docker-compose运行容器超时的问题
查看>>
Java 注解完全解析
查看>>