android 小米角标,Android 小米角标无法修改问题研究

如果你在APP里面是无法修改角标的,你要在桌面才能修改角标

解决办法是针对小米系统增加延时的操作显示

//延迟操作

new Handler().postDelayed(new ShortCutRunnable(count,notification,notifId,notificationManager),600);

/**

*作者:GaoXiaoXiong

*创建时间:2018/4/8

*注释描述:延迟显示角标个数,解决小米不正确显示角标

*/

class ShortCutRunnable implements Runnable{

private int count;//要显示的个数

private int notifId;//可以采用System.currentTimeMillis()

private Notification notification;

private NotificationManager notificationManager;

public ShortCutRunnable(int count, Notification notification,int notifId,NotificationManager notificationManager) {

this.count = count;

this.notification = notification;

this.notifId = notifId;

this.notificationManager = notificationManager;

}

@Override

public void run() {

try {

ShortCutBadgerCount.getShortCutBadgerCount().clearCount();//我自己定义的

Field field = notification.getClass().getDeclaredField("extraNotification");

Object extraNotification = field.get(notification);

Method method = extraNotification.getClass().getDeclaredMethod("setMessageCount", int.class);

method.invoke(extraNotification, count);//显示个数

} catch (Exception e) {

BAFLogger.e(TAG,e.getMessage());

}

notificationManager.notify(notifId, notification);//显示通知

}

}

ShortCutBadgerCount.java

/**

* 创建时间: 2018/4/4

* gxx

* 注释描述:角标个数

*/

public class ShortCutBadgerCount {

private ShortCutBadgerCount() {

}

private int cutCount=0;

private volatile static ShortCutBadgerCount shortCutBadgerCount;

public static ShortCutBadgerCount getShortCutBadgerCount(){

if (shortCutBadgerCount==null){

synchronized (ShortCutBadgerCount.class){

if (shortCutBadgerCount==null){

shortCutBadgerCount = new ShortCutBadgerCount();

}

}

}

return shortCutBadgerCount;

}

/**

*作者:GaoXiaoXiong

*创建时间:2018/4/4

*注释描述:添加1个角标

*/

public int addCount(){

this.cutCount+=1;

setCutCount(this.cutCount);

return cutCount;

}

/**

*作者:GaoXiaoXiong

*创建时间:2018/4/4

*注释描述:设置个数

*/

public void setCutCount(int cutCount) {

this.cutCount = cutCount;

}

/**

*作者:GaoXiaoXiong

*创建时间:2018/4/8

*注释描述:消息个数

*/

public int getCutCount() {

return cutCount;

}

/**

*作者:GaoXiaoXiong

*创建时间:2018/4/4

*注释描述:清零

*/

public void clearCount(){

cutCount = 0;

}

/**

*作者:GaoXiaoXiong

*创建时间:2018/4/8

*注释描述:销毁

*/

public void destory(){

if (shortCutBadgerCount!=null){

removeShortcutBadgerACount();

shortCutBadgerCount=null;

}

}

/**

*作者:GaoXiaoXiong

*创建时间:2018/4/8

*注释描述:移除角标和清空统计的角标个数

*/

public void removeShortcutBadgerACount(){

ShortcutBadger.removeCount(ABSApplication.getApplication()); //移除桌面角标

ShortCutBadgerCount.getShortCutBadgerCount().clearCount();//清除个数

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值