问题描述
我有一个扩展 androidx.appcompat.app.AppCompatActivity 的 ImageView。 根据文档,这个视图需要一个带有上下文的构造函数。
在 MainActivity 中,我使用 MainActivity 的上下文初始化视图。 我还初始化了一个弱引用。
//inside onCreate
myview = new GraphImage(this);
weakref = new WeakReference<>(myview);
在 myview 类 'GraphImage' 中,我实现了一个 ViewTreeObserver.addOnDrawListener() 这个 ViewTreeObserver.addOnDrawListener() 记录一个调用,提醒我视图正在绘制
一切正常。但我希望在删除片段后不会调用 ViewTreeObserver.addOnDrawListener()。
我相信即使在片段被销毁后绘图操作也会继续进行 因为 myview 对象采用 MainActivity 的上下文,即使片段已被分离和删除,它仍然处于活动状态.
我的问题是:为什么Android系统不杀掉myview对象的绘制操作?我认为它应该是因为不再可见。它仅在片段中使用。
我了解 Android 系统以每秒 60 帧的速度更新和重绘视图。我认为继续绘制用户不再可见的视图对它是不利的。
如何在此视图被其片段移除且不再可见后阻止其绘制。
我认为解决方案是使用片段的上下文,将视图添加到片段的视图层次结构中。但是,片段的上下文与调用它的活动是否相同?我相信是这样。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)