我没有任何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());
答案 0 :(得分:1)
你无需担心。
Helper类,用于生成包含大量文本的大格式通知。 如果平台不提供大格式通知,则此方法无效。用户将始终看到正常的通知视图。