作者:neek.chen
Android7.0上不仅有默认的快捷快关(QSTile),也允许客户自行添加第三方快捷开关(CustomTile)。本文只介绍在绑定第三方CustomTile时遇到的间歇性灰显的问题。
问题场景描述:
进SystemUI的编辑界面,将一个第三方Tile添加到显示列表中,返回显示界面,间歇性出现图标是不可用状态(灰显)。
添加Tile流程分析
1. 将CustomTile添加到显示区,点击返回,会执行保存和更新Tile的操作,距离流程见下图:
在changeTiles()中会对比之前的Tile列表,若有新增的或是删除的,则需要通知对应APP做相应的更新操作。对于新增的Tile,会通过flushMessagesAndUnbind()去执行绑定service的操作。
2. 同时,在QSTileHost中实现了Tunable的onTuningChanged()接口,所以相继也会调用该接口。该函数实现的功能和changeTiles()差不多,对比保存前后的列表差异,销毁