我没有要测试的设备早于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());
最佳答案
你没有什么可担心的。
用于生成包含大量文本的大幅面通知的Helper类。
如果平台不提供大幅面通知,则此方法无效。用户将始终看到普通的通知视图。
(NotificationCompat.BigTextStyle)