通知Notification

通知(android.app.Notification)是跟随各个版本变化比较大的一个机制。

从创建android.app.Notification实例,到通过android.app.Notification.Builder快速创建,再到V4android.support.v4.app.NotificationCompat.Builder创建。

 

使用通知 可以使用几种方式:

android.app.Notification
android.app.Notification.Builder

V4包

android.support.v4.app.NotificationCompat.Builder

通过该类的方法可以看到版本变化

static {
    if (Build.VERSION.SDK_INT >= 26) {
        IMPL = new NotificationCompatApi26Impl();
    } else if (Build.VERSION.SDK_INT >= 24) {
        IMPL = new NotificationCompatApi24Impl();
    } else if (Build.VERSION.SDK_INT >= 21) {
        IMPL = new NotificationCompatApi21Impl();
    } else if (Build.VERSION.SDK_INT >= 20) {
        IMPL = new NotificationCompatApi20Impl();
    } else if (Build.VERSION.SDK_INT >= 19) {
        IMPL = new NotificationCompatApi19Impl();
    } else if (Build.VERSION.SDK_INT >= 16) {
        IMPL = new NotificationCompatApi16Impl();
    } else {
        IMPL = new NotificationCompatBaseImpl();
    }
}

只能通过Builder创建,返回android.app.Notification,

public Notification build() {
    return IMPL.build(this, getExtender());
}

V7已废弃

package android.support.v7.app;
.......
@Deprecated
public class NotificationCompat extends android.support.v4.app.NotificationCompat {

 

--------------------------------------

设置小图标,通知栏小图标显示或者通知栏下拉状态下右下角显示的图标,根据各家Rom不同显示方式不固定。

当系统版本小于23,使用V4包(V7未探索)只能使用apk自带的资源的id设置改图标,

public Builder setSmallIcon(@DrawableRes int icon) {

只有系统版本23及以上才能通过一个Icon实例指定一个小图标。

setSmallIcon(Icon icon);

Icon 可以指定一个资源,来自Uri,BitMap,resId等

createFromStream,createWithResource,createWithBitmap,createWithData,createWithContentUri
package android.graphics.drawable;
......
public final class Icon implements Parcelable {
/** @hide */
public static final int TYPE_BITMAP   = 1;
/** @hide */
public static final int TYPE_RESOURCE = 2;
/** @hide */
public static final int TYPE_DATA     = 3;
/** @hide */
public static final int TYPE_URI      = 4;
/** @hide */
public static final int TYPE_ADAPTIVE_BITMAP = 5;
....
}

该类存在于Build.VERSION.SDK_INT >=23的版本下,也就是Build.VERSION.SDK_INT >=23时才可使用该方式设置SmallIcon,v4包没有相关实现,所以无法通过v4使低版本系统兼容该特性。

 

 

 

 

 

转载于:https://my.oschina.net/u/2422486/blog/1846052

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值