“吐司”测试二三事

发表于:2020-3-12 11:04

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Lethe    来源:搜狗测试

  主要问题 :
  Toast作为Android轻量级反馈信息提示的系统控件,在目前项目中大量使用,但是由于Toast是系统层面提供的,不依赖于前台页面,存在滥用的风险。为了规避这些风险,Google在Android系统版本的迭代过程中,不断进行了优化和限制。这些限制不可避免的影响到了正常的业务逻辑。
  目前为止输入法在测试过程中主要遇到过以下几种情况:
  1、多次触发,Toast会按照队列的形式一个接一个的弹出,哪怕此时App退出也会不停的弹;
  2、小米机型上触发Toast会带有应用名的前缀提示;
  3、关闭通知权限后,无法正常的反馈给用户提示信息,造成不太友好的体验;
  4、在部分机型上,单独的输入法键盘无法弹出Toast,需要悬浮窗权限,但在打开输入法App后,就可以正常弹出了;
  解决方案:
  问题1:
  Toast对象在show时,系统将该对象放入队列中,只有当前没有要显示的toast时才执行本次show请求,否则需要显示完一个Toast之后再去显示下一个Toast,如果用户无意间多次触发了这个Toast,很可能导致这个Toast在较长的一段时间内无法消失,不停的出现,影响用户视觉体验。
  解决:
  可以在Toast触发的时候增加当前是否存在Toast的判断,如果当前没有在显示的Toast,则创建Toast并展示,如果当前已经存在一个Toast,则只替换当前的文案显示。
  方法如下:
  问题2:
  在做定制版项目时,对方测试曾反馈一个问题,在小米手机上,输入法的Toast提示前面总是带着:搜狗输入法 的应用名称,显示如下:
  经过调查发现,这种显示方式是MIUI系统特有的,本着不一样就是问题的逻辑,我们还是去查询了下这个问题。
  Toast的默认方式如下:
  如果你们的项目也是这么调用的,那么你的Toast前面也会有应用名。
  网上提供了一种方法,将默认Toast置为空,重新写入内容,这样就不会带有应用名称,方法如下:
  汇总以上两个问题,整合方法如下:
  后面两个权限带来的问题,我们计划使用Snackbar的方法解决。测试过效果后,再详细给大家介绍Toast、Snackbar的优缺点。

      上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号