Skip to content

Releases: getActivity/Toaster

v10.0

28 Nov 16:18
Compare
Choose a tag to compare
修复 Toast 在关闭通知栏权限后无法在后台显示的问题

新增支持 ActivityToast 设置显示动画和显示时长

v9.6

10 Oct 16:05
Compare
Choose a tag to compare
优化框架的代码逻辑

新增 Toast 日志拦截器
新增不同同类框架对比文档

v9.5

04 Jul 11:37
Compare
Choose a tag to compare
新增 ToastUtils.isInit 方法

新增 ToastUtils.debugShow 方法
修正多个 Toast 同时显示会出现覆盖的效果
抑制项目中出现的代码警告和优化代码逻辑

v9.2

12 May 08:25
Compare
Choose a tag to compare
修复 SystemToast.setText 会出现 This Toast was not created with Toast.make…

v9.1

30 Apr 06:40
Compare
Choose a tag to compare
修复 WindowLifecycle.unregister 在极端情况下会出现空指针的问题

v9.0

16 Apr 02:15
Compare
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
Compare
Choose a tag to compare
优化类名命名及代码注释

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

v8.6

01 Jul 06:09
Compare
Choose a tag to compare
兼容 Android 11 新特性

v8.5

29 Jun 11:46
Compare
Choose a tag to compare
适配 Android 11

v8.3

28 Jun 08:53
Compare
Choose a tag to compare
修复 Toast 没有跟随 Activity 生命周期的问题