• 自定义的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

  • 相关阅读:
    ASP.NET 2.0的页面缓存功能介绍
    第五课 主定理
    HDU 1051 Wooden Sticks
    一行代码让浏览器变编辑器
    算法概论习题1001Forest
    第七课 寻找强连通分量
    8223. Tiling a Grid With Dominoes
    迷宫
    第八课 最小生成树之Kruskal
    解决 Ubuntu 12.04 无法调节屏幕亮度的问题
  • 原文地址:https://www.cnblogs.com/code4app/p/4331885.html
Copyright © 2020-2023  润新知