我无法设置大视图样式

时间:2013-04-17 18:44:17

标签: android-notifications

我无法使用大视图样式创建通知。支持库问题?我的代码在Eclipse中没问题(没有错误),但通知只显示了contentTitle,ContentText,图标......就是这样!我的通知中没有额外的行...出了什么问题?非常感谢你的回复 。这是代码......

@Override
protected void onMessage(Context arg0, Intent arg1) {
    // TODO Auto-generated method stub
    //Log.d("onMessage", String.valueOf(arg1));
    //Log.d("onMessage", "Receive a message");
    // Get the data from intent and send to notification bar
    String message = arg1.getExtras().getString("message");
    generateNotification3(arg0, message);
}


private static void generateNotification3(Context context, String message) {    
    NotificationCompat.Builder mbuilder =
            new NotificationCompat.Builder(context)
            .setSmallIcon(R.drawable.ic_launcher)
            .setContentTitle("lolo")
            .setContentText("text")
            .setDefaults(Notification.DEFAULT_ALL) // requires VIBRATE permission
            /*
             * Sets the big view "big text" style and supplies the
             * text (the user's reminder message) that will be displayed
             * in the detail area of the expanded notification.
             * These calls are ignored by the support library for
             * pre-4.1 devices.
             */
            .setStyle(new NotificationCompat.BigTextStyle()
                    .bigText(message));

     // Creates an explicit intent for an Activity in your app  
      Intent resultIntent = new Intent(context, Fsa.class);  

      // The stack builder object will contain an artificial back stack for  
      // the  
      // started Activity.  
      // This ensures that navigating backward from the Activity leads out of  
      // your application to the Home screen.  
      TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);  

      // Adds the back stack for the Intent (but not the Intent itself)  
      stackBuilder.addParentStack(Fsa.class);  

      // Adds the Intent that starts the Activity to the top of the stack  
      stackBuilder.addNextIntent(resultIntent);  
      PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0,  
                PendingIntent.FLAG_UPDATE_CURRENT);  
      mbuilder.setContentIntent(resultPendingIntent);  

      NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);  

      // mId allows you to update the notification later on.  
      mNotificationManager.notify(100, mbuilder.build());  

}

1 个答案:

答案 0 :(得分:14)

根据官方文档here,"大视图仅在通知展开时出现,当通知位于通知抽屉的顶部时,或者当用户展开通知时一个手势" 因此,为了具有大视图样式,通知应放在列表的顶部。

为此,请在创建通知时添加:

setPriority(Notification.PRIORITY_MAX)

因此,当收到列表时,它将始终位于列表的顶部位置(当然,如果用户没有打开通知抽屉,并且其他通知具有最大优先级,那么它就不会保证你的人仍然在最顶层。)