我可以使用NotificationCompat.BigTextStyle而不会在旧设备上崩溃吗?

时间:2014-09-01 18:44:49

标签: java android notifications android-notifications android-notification-bar

我没有任何4.1以上的设备可供测试。我尝试使用下面的代码测试推送我的通知。它主要取自Notification documentation。我的代码会崩溃,还是NotificationCompat类会优雅地为我处理所有这些?

根据"处理兼容性"部分内容如下:

处理兼容性

  

并非所有通知功能都适用于特定版本,   即使设置它们的方法在支持库类中   NotificationCompat.Builder。例如,依赖的动作按钮   在扩展通知上,仅显示在Android 4.1及更高版本上,   因为扩展通知本身仅适用于   Android 4.1及更高版本。

     

要确保最佳兼容性,请使用以下命令创建通知   NotificationCompat及其子类,尤其如此   NotificationCompat.Builder。另外,请在此时按照此过程进行操作   实施通知:

     

...

这是否意味着如果我使用NotificationCompat类,它将为我处理所有兼容性?

我担心的代码(因为它使用了BigTextStyle):

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(mContext).setSmallIcon(R.drawable.ic_launcher).setContentTitle("Title")
                .setContentText(String.format("%s", message));
        // Creates an explicit intent for an Activity in your app
        Intent resultIntent = new Intent(mContext, ActivityMain.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(mContext);
        // Adds the back stack for the Intent (but not the Intent itself)
        stackBuilder.addParentStack(MainActivity.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) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
        // Add max priority
        mBuilder.setPriority(NotificationCompat.PRIORITY_MAX);
        // Add bigTextStyle
        NotificationCompat.BigTextStyle bigTextStyle = new NotificationCompat.BigTextStyle();
        bigTextStyle.bigText(String.format("%s", message));
        mBuilder.setStyle(bigTextStyle);
        mBuilder.setAutoCancel(true);
        // mId allows you to update the notification later on.
        mNotificationManager.notify(1, mBuilder.build());

1 个答案:

答案 0 :(得分:1)

你无需担心。

  

Helper类,用于生成包含大量文本的大格式通知。   如果平台不提供大格式通知,则此方法无效。用户将始终看到正常的通知视图。

NotificationCompat.BigTextStyle