Skip to content

Releases: getActivity/Toaster

v9.1

30 Apr 06:40

Choose a tag to compare

修复 WindowLifecycle.unregister 在极端情况下会出现空指针的问题

v9.0

16 Apr 02:15

Choose a tag to compare

ToastUtils 框架重构了,专治 Toast 各种疑难杂症,具体的变化如下:

  • 显示方式不同:多个 Toast 同时显示,旧版本上面会采用排队显示机制,只有上一个显示完了才会显示下一个,能保证 Toast 的完整性,但是损失了 Toast 的即时性,经过调研大家更注重 Toast 的即时性,所以在新版本上面会取消上一个 Toast 显示,再显示下一个 Toast。

  • 初始化方式不同:旧版本上采用的是饿汉式机制,ToastUtils.init 会初始化 Toast 对象和 Toast 布局,这样会影响 Application 的启动速度,经过认真思考,最终决定在新版本上换成懒汉式,也就是每次在 ToastUtils.show 时去创建 Toast 对象和 Toast 布局。

  • 复用机制不同:旧版本上面采用是单例 Toast,这样做的好处是复用 Toast 对象和 Toast 布局,但是在某些情况会出现 IllegalStateException:View has already been added to the window manager 异常,这个问题极其难复现,在经过了十几个人的反馈之后,我终于等到了那个真正能复现这个问题的人,经过了长达一个多星期的排查和尝试修复,我放弃了对 Toast 对象和 Toast 布局的复用,而是每次 show 的时候都去创建 Toast 对象和 Toast 布局。

  • Android 11 适配更好:在 Android 11 上面,旧版本的 ToastUtils 采用的是 WindowManager 来显示自定义的 Toast,所以只会在当前应用上显示,这样会存在有一个问题,应用无法在后台显示自定义 Toast ,经过对 Android 11 Toast 的机制研究和实践,发现系统 Toast 在 Android 11 上面其实是可以在后台显示,但是不允许自定义布局,新版本的 ToastUtils 做了一个智能化处理,如果当前应用处于前台状态,就使用 WindowManager 来显示 Toast,如果当前应用处于后台状态,那么会判断当前设备是否是 Android 11,如果是就使用系统样式来显示 Toast,如果不是则会使用我们自定义的样式,由此来保证 Toast 能够正常显示给到用户。

v8.8

11 Oct 02:40

Choose a tag to compare

优化类名命名及代码注释

优化及抽取 Toast 创建的策略
优化匹配原生 Toast 的正则表达式

v8.6

01 Jul 06:09

Choose a tag to compare

兼容 Android 11 新特性

v8.5

29 Jun 11:46

Choose a tag to compare

适配 Android 11

v8.3

28 Jun 08:53

Choose a tag to compare

修复 Toast 没有跟随 Activity 生命周期的问题

v8.0

22 Jul 06:47

Choose a tag to compare

优化代码命名和注释

优化 Toast 默认圆角大小
新增支持自定义Toast显示规则
新增支持自定义Toast拦截规则
修复原生 Toast 在 Android 7.1 主线程阻塞会发生崩溃的问题

v6.0

18 Apr 09:38

Choose a tag to compare

修复SupportToast在Activity跳转时没有显示的问题,优化线程安全的问题,优化一些代码

v5.8

11 Mar 03:07

Choose a tag to compare

新增搭配XToast案例,优化Toast显示延迟

v5.6

21 Feb 08:12

Choose a tag to compare

修复多个Toast排队机制的问题