Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

【BUG反馈】 队列对话框未能全部显示 #476

Closed
4 tasks done
litangyu opened this issue Nov 22, 2024 · 5 comments
Closed
4 tasks done

【BUG反馈】 队列对话框未能全部显示 #476

litangyu opened this issue Nov 22, 2024 · 5 comments
Labels
bug Something isn't working 已处理 已处理,等待结单 等待反馈 存疑或问题需要进一步确认

Comments

@litangyu
Copy link
Contributor

⚠️ 重要阅读

  • 请确保你已升级至 最新发布的测试版本,旧版本存在的问题不再处理。
  • 请确保你已在 已有的issues 中查询过没有类似的问题。
  • 请先确认您已阅读《常见问题》
  • 如有条件建议尝试拉取整个项目,尝试运行 Demo app,并模拟在 Demo 环境中运行可能存在问题的代码,如果可以复现请提交 issues 并附上复现代码。

问题描述

使用DialogX.showDialogList时,未能显示全部弹窗。BaseDialog中的成员变量WeakReference dialogListBuilder所持有的引用被系统提前释放。

复现步骤:
1.运行Demo,点击队列对话框
2.显示到InputDialog时,将应用切换至后台并等待3到5分钟
3.将应用切回前台,点击“知道了”

预期效果:继续显示剩余对话框
实际效果:对话框消失,剩余对话框不会弹出

DialogX 版本

0.0.50.beta23

设备信息

Samsung Galaxy S9+

是否在 Demo 中能复现此问题?

问题截图/视频

截屏/视频

错误日志

No response

@litangyu litangyu added the bug Something isn't working label Nov 22, 2024
@kongzue
Copy link
Owner

kongzue commented Nov 22, 2024

因为DialogX的对话框可能持有context因此必须使用弱引用来避免内存泄漏,建议在需要展示对话框时进行构造而不是提前构造。

@kongzue kongzue added the 等待反馈 存疑或问题需要进一步确认 label Nov 22, 2024
@stale stale bot removed the 等待反馈 存疑或问题需要进一步确认 label Nov 22, 2024
@litangyu
Copy link
Contributor Author

因为DialogX的对话框可能持有context因此必须使用弱引用来避免内存泄漏,建议在需要展示对话框时进行构造而不是提前构造。

没明白你所说的“建议在需要展示对话框时进行构造而不是提前构造”。

调用DialogX.showDialogList不是已经开始展示对话框了吗?假如需要按顺序展示对话框A和B,在A未消失前,GC机制将弱引用持有的对象回收了,这时不就是没法显示对话框B了吗?

@kongzue
Copy link
Owner

kongzue commented Nov 22, 2024

我考虑下这块怎么改,主要问题还是在于context的引用,修改为activity释放则清理应该更合适一些

@kongzue kongzue added the 待处理 已收到,待处理 label Nov 22, 2024
@litangyu
Copy link
Contributor Author

我考虑下这块怎么改,主要问题还是在于context的引用,修改为activity释放则清理应该更合适一些

最好还是通过代码手动控制资源释放,毕竟GC回收时机是不可控的,而且基于“队列对话框”这个场景,弱引用导致的问题感觉是不可接受的。

我也试着改下吧,要是改好了,给你提一个PR 🤝

@kongzue
Copy link
Owner

kongzue commented Nov 25, 2024

ok,最新的代码我也为DialogListBuilder增加了空指针风险控制,稍晚更新一个测试版本

@kongzue kongzue added 已处理 已处理,等待结单 and removed 待处理 已收到,待处理 labels Nov 25, 2024
@stale stale bot added the 等待反馈 存疑或问题需要进一步确认 label Dec 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working 已处理 已处理,等待结单 等待反馈 存疑或问题需要进一步确认
Projects
None yet
Development

No branches or pull requests

2 participants