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

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

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

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

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

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

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

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