Closed sea5241 closed 1 year ago
小伙子,我曾经有实践过这种做法,但是最终走不通,用 Activity 作为上下文展示的 Toast,本质上是通过 WindowManager addView 了一个视图进去,如果要在当前 App 页面跨 Activity 展示,是做不了的,除非用系统的 Toast,这种就可以,另外你提的这个建议,直接持有 Context 对象,我觉得可以换一种方式实现,在 ToastParams 类新增一个参数,如果为 true,则表示这次的 Toast 需要跨页面展示,在创建 Toast 的时候则优先使用系统 Toast,这样就能最大限度保证 Toast 在后台显示。
ToastParams params = new ToastParams();
params.text = "我是一个能跨页面展示的 Toast";
// 表示这个 Toast 需要跨页面展示
params.crossPageShow = true;
Toaster.show(params);
非常给力
但是有个问题,这样就不会显示自定义样式了吗?如果我想显示自定义样式的Toast,并且依赖的是Application的context,这样可以吗?APP退到后台可以不显示Toast,只要不报错就可以
我可以强制使用GlobalToast吗?而不是SystemToast
@sea5241 小伙子,我测试了,可以显示自定义样式,你不能显示样式该不会是在后台的情况下弹的吧?
我可以强制使用GlobalToast吗?而不是SystemToast
有悬浮窗权限就可以,没有就不行。
好的,多谢👍🏻
你觉得框架有什么不足之处?【必答】
现在是如果在前台,则使用当前Activity的context,但是如果展示Toast的时候立即关闭了当前Activity会导致Toast立即消失,其实APP并没有退到后台,应该继续展示Toast
issue 是否有人曾提过类似的建议?【必答】
否
框架文档是否提及了该问题【必答】
否
是否已经查阅框架文档但还未能解决的【必答】
否
你觉得该怎么去完善会比较好?【非必答】
showToast时可以在ToastParams里增加一个参数控制,强制使用application.context而不是使用当前Activity的context,这样能在当前二级Activity关闭的时候也能正常显示Toast