zoukankan      html  css  js  c++  java
  • Androidn Notification的使用,解决找不到setLatestEventInfo方法

    转自: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版本,也就是Android 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这个设置,不然,程序虽然不会报错,但是会没有效果。

  • 相关阅读:
    linux 解压tgz 文件指令
    shell 脚本没有执行权限 报错 bash: ./myshell.sh: Permission denied
    linux 启动solr 报错 Your Max Processes Limit is currently 31202. It should be set to 65000 to avoid operational disruption.
    远程查询批量导入数据
    修改 MZTreeView 赋权节点父节点选中子节点自动选中的问题
    关于乱码的问题解决记录
    我的网站优化之路
    对设计及重构的一点反思
    我的五年岁月
    奔三的路上
  • 原文地址:https://www.cnblogs.com/Sharley/p/6944721.html
Copyright © 2011-2022 走看看