郁闷的RecipientEditTextView!!!

来源:互联网 发布:淘宝店主 编辑:程序博客网 时间:2024/06/05 09:29

短信模块最让人蛋疼的地方之一就是这个RecipientEditTextView.java,无可否认,有了这个类,使得添加联系人更加好看明朗,但是谷歌在这个地方就没把优化做到多好,诟病一堆,至今涉及到这个地方就没办法进行过多的优化,尽管谷歌在一些细节或技巧上做的不错,但不得不承认谷歌有些代码太乱(至少短信模块这块),我们一直都想将这块代码重新整理优化下,但没人敢动手,就是因为太乱太复杂,都怕浪费大量时间最后各种崩溃。继续谈这个RecipientEditTextView:

1)首先,这个类使得添加联系人占用大量的cpu,虽然谷歌中间层对此做了转换数量的限制,但是仍然会占用大量cpu导致anr,而且联系人太多不转化和少则转化对比不好看,当然如果你的cpu过于NB可以放开限制无视之(三星貌似是放开限制的,没测试过最多添加多少不转化,但是测试8、9十人来看,也是卡个半天不轻),当然这块我们已经对其优化了,还算可以的说,基本添加199联系人还是可以的(过多没测,限制199)~~~

2)尽管优化了很多,但是也难易避免偶先的anr,没办法,真的是想不出更好的办法,毕竟我也是初级的IT菜鸟~~~

3)这个类的另一弊端,始终设置光标各种最后难移动(我删除移动等操作不需这样的,亲)、极易误操作(不小心就删除某人了)、联系人无头像,email和Mms共用该类,当然这几个问题再我打log跟踪的过程中解决了,但仍残余就那么一点点的小问题,可以接受范围之类~~~

4)由于有了这个类,从此添加过多的联系人进行刷新等操作后,短信瞬间卡了,anr也可能出现了,蛋疼的一踏~~~

5)现在有个问题还未解决,输入接收者处号码,输入逗号,继续输入,一半的概率刷新会出现两个号码结合在一起再刷新变为第二个号码,该问题搞了两天无果,貌似刷新处有问题,该情况下,输入完逗号后afterTextChangedListener下会少执行3次,正常下会执行5次,TMD,不知道什么鸟情况,乱的一踏,继续搞起~~~

求帮助,网上的各种介绍犹如浮毛般肤浅,貌似4.1以上加入该类无人仔细研究过,谁有此处详细解释、说明、例子、代码等等请指导,先谢过~~~~~

原创粉丝点击