最近看了点安卓的入门级读物,第一行代码 , 感觉这本书不错,是2014年7月出的,我最近读已经发现不少deprecated的方法了,技术进步真是快啊。

我是在看到第八章的8.1.1节中,遇到下面的代码时

1 NotificationManager manager = (NotificationManager)
2         getSystemService(NOTIFICATION_SERVICE);
3 Notification notification = new Notification(R.drawable.
4         ic_launcher, "This is ticker text", System.currentTimeMillis());
5 notification.setLatestEventInfo(this, "This is content title",
6         "This is content text", null);
7 manager.notify(1, notification);

其中第三行的new Notification和第五行的notification.setLatestEventInfo都是deprecated的, 看了下源码的提示,说是让用Builder,(Use {@link Builder} instead.)

可是要怎么用却没有说,于是Google了一下之后还是来到了stackoverflow,

结合书中的例子和这个回答,解决方案如下:

 1 Notification.Builder builder = new Notification.Builder(ThirdActivity.this);
 2 builder.setSmallIcon(R.drawable.ic_launcher)
 3         .setTicker("This is ticker text2")
 4         .setWhen(System.currentTimeMillis())
 5         .setAutoCancel(true)
 6         .setContentTitle("This is content title2")
 7         .setContentText("This is content text2");
 8 Notification n = builder.build();
 9 
10 manager.notify(1, n);

需要注意的是上面的最后一行,在Android Studio中有个提示,就是它支持的最低API版本是16, 所以可能需要修改app目录下的build.gradle,将其中的minSdkVersion改为16.



blog comments powered by Disqus

Published

27 May 2015

Category

tech_world

Tags