【发布时间】:2013-05-31 07:44:56
【问题描述】:
我有一个小问题,但不明白如何解决这个问题。
我创建了一个用于提供通知的类,但这些行被标记为已弃用:
...
Notification notification = new Notification(icon, text, time); // deprecated in API level 11
...
notification.setLatestEventInfo(this, title, text, contentIntent); // deprecated in API level 11
...
替代方法是:
...
Notification noti = new Notification.Builder(mContext)
.setContentTitle("New mail from " + sender.toString())
.setContentText(subject)
.setSmallIcon(R.drawable.new_mail)
.setLargeIcon(aBitmap)
.build(); // available from API level 11 and onwards
...
我可以写一个类似的代码:
if(API_level < 11)
{
...
Notification notification = new Notification(icon, text, time); // deprecated in API level 11
...
notification.setLatestEventInfo(this, title, text, contentIntent); // deprecated in API level 11
...
}
else
{
...
Notification noti = new Notification.Builder(mContext)
.setContentTitle("New mail from " + sender.toString())
.setContentText(subject)
.setSmallIcon(R.drawable.new_mail)
.setLargeIcon(aBitmap)
.build(); // available from API level 11 and onwards
...
}
我提供的最低 sdk 版本为“8”。
编辑:
我确实喜欢以下内容:
int currentapiVersion = android.os.Build.VERSION.SDK_INT;
if (currentapiVersion < android.os.Build.VERSION_CODES.HONEYCOMB){
Notification notification = new Notification(icon, text, time);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, new Intent(this, TaskDetails.class), 0);
notification.setLatestEventInfo(this, title, text, contentIntent);
notification.flags |= Notification.FLAG_AUTO_CANCEL;
mNM.notify(NOTIFICATION, notification);
}
else
{
// what to write here
}
else 部分我可以写什么??
【问题讨论】:
-
是的,你可以。确保将 targetSdkVersion 设置为 11 或更多。
-
@Tarun 是的,我的目标 sdk 版本设置为“17”,如果“if...else”条件可以处理这个问题,请您提供示例代码或参考,以便我可以得到一点提示。
-
您的代码对我来说似乎是正确的。如果 else 将按照 api 级别处理。
-
@Tarun 这只是一个想法,我想知道我是否可以写这个。但是如何获取当前的 API 版本,该设备可能正在使用...
-
Integer.valueOf(android.os.Build.VERSION.SDK);
标签: android android-notifications