zoukankan      html  css  js  c++  java
  • 自定义的Notification

    要创建一个自定义的Notification,可以使用RemoteViews。要定义自己的扩展消息,首先要初始化一个RemoteViews对象,然后将它传递给Notification contentView字段,再把PendingIntent传递给contentIntent字段。以下示例代码是完整步骤: 

    //1、创建一个自定义的消息布局 view.xml 

    <?xml version="1.0" encoding="utf-8"?> 

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android

    android:layout_width="fill_parent" android:layout_height="fill_parent"> 

    <ImageView android:id="@+id/image" android:layout_width="wrap_content" 

    android:layout_height="fill_parent" android:layout_marginRight="10dp" /> 

    <TextView android:id="@+id/text" android:layout_width="wrap_content" 

    android:layout_height="fill_parent" android:textColor="#000" /> 

    </LinearLayout> 

    //2、在程序代码中使用RemoteViews的方法来定义image和text。然后把RemoteViews对象传到contentView字段 

    RemoteViews contentView = new RemoteViews(getPackageName(),R.layout.view); 

    contentView.setImageViewResource(R.id.image,R.drawable.icon); 

    contentView.setTextViewText(R.id.text,”Hello,this message is in a custom expanded view”); 

    notification.contentView = contentView; 

    //3、为Notification的contentIntent字段定义一个Intent(注意,使用自定义View不需要setLatestEventInfo()方法) 

    Intent notificationIntent = new Intent(this,Main.class); 

    PendingIntent contentIntent = PendingIntent.getActivity(this,0,notificationIntent,0); 

    notification.contentIntent = contentIntent; 

    //4、发送通知 

    mNotificationManager.notify(2,notification); 

    //以下是全部示例代码 

    //创建一个NotificationManager的引用 

    String ns = Context.NOTIFICATION_SERVICE; 

    NotificationManager mNotificationManager = (NotificationManager)getSystemService(ns); 

    //定义Notification的各种属性 

    int icon = R.drawable.icon; //通知图标 

    CharSequence tickerText = "Hello"; //状态栏显示的通知文本提示 

    long when = System.currentTimeMillis(); //通知产生的时间,会在通知信息里显示 

    //用上面的属性初始化Nofification 

    Notification notification = new Notification(icon,tickerText,when); 

    RemoteViews contentView = new RemoteViews(getPackageName(),R.layout.view); 

    contentView.setImageViewResource(R.id.image, R.drawable.iconempty); 

    contentView.setTextViewText(R.id.text, "Hello,this is JC"); 

    notification.contentView = contentView; 

    Intent notificationIntent = new Intent(this,Main.class); 

    PendingIntent contentIntent = PendingIntent.getActivity(this,0,notificationIntent,0); 

    notification.contentIntent = contentIntent; 

    //把Notification传递给NotificationManager 

    mNotificationManager.notify(0,notification);

    来自:http://blog.csdn.net/iamfafa/article/details/6298011

  • 相关阅读:
    mysql性能调优与架构设计(一)商业需求与系统架构对性能的影响
    Android发送数据到web服务器4种方式
    Java 操作mongodb
    父子容器互相操作的方法
    Sql Server中查询当天,最近三天,本周,本月,最近一个月,本季度的数据的sql语句
    js实现多少秒后自动跳转
    插入数据返回插入的主键Id
    日期比较
    Cookie的增删改查
    js标准化价钱
  • 原文地址:https://www.cnblogs.com/code4app/p/4331885.html
Copyright © 2011-2022 走看看