版权声明:本文为博主原创文章,转载请注明出处http://blog.csdn.net/u013132758。 https://blog.csdn.net/u013132758/article/details/51225680
最近学习AIDL(Android Interface Definition Laguage,这个将在后面主要介绍)遇到Notification无法创建setLatestEventInfo方法不存在。原因是因为Android api11之后就废弃掉了这个方法,而采用Builder方法来创建和设置Notification。大家可以看Android API文档:http://www.android-doc.com/reference/android/app/Notification.html
下面我们来看一下两种方法的对比:
api 11 版本之前:
//显示通知信息
protected void showNotification() {
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
// Notification notification = new Notification(this,R.drawable.ic_launcher);
Notification notification = new Notification(R.drawable.ic_launcher,"",System.currentTimeMillis() );
PendingIntent contentIndent = PendingIntent.getActivity(MainActivity.this, 0, new Intent(MainActivity.this,MainActivity.class), PendingIntent.FLAG_UPDATE_CURRENT);
notification.setLatestEventInfo(MainActivity.this, "您的BMI值过高", "通知监督人", contentIndent);
//加i是为了显示多条Notification
notificationManager.notify(i,notification);
i++;
}
api 11版本后:
protected void showNotification2() {
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Builder builder = new Notification.Builder(MainActivity.this);
PendingIntent contentIndent = PendingIntent.getActivity(MainActivity.this, 0, new Intent(MainActivity.this,MainActivity.class), PendingIntent.FLAG_UPDATE_CURRENT);
builder . setContentIntent(contentIndent) .setSmallIcon(R.drawable.ic_launcher)//设置状态栏里面的图标(小图标)
.setLargeIcon(BitmapFactory.decodeResource(res, R.drawable.i5))//下拉下拉列表里面的图标(大图标)
.setTicker("this is bitch!") //设置状态栏的显示的信息
.setWhen(System.currentTimeMillis())//设置时间发生时间
.setAutoCancel(true)//设置可以清除
.setContentTitle("This is ContentTitle")//设置下拉列表里的标题
.setContentText("this is ContentText");//设置上下文内容
Notification notification = builder.getNotification();
//加i是为了显示多条Notification
notificationManager.notify(i,notification);
}