好的,是时候写下我的第一个问题了:
如何检测父母的死亡(查看)
特别是当父母处于终止状态时。
情况下:
- 在UI线程(UI)上运行的活动(A)或一般视图(V)得到了Child(C)
- C与弱引用(WR)绑定到Thread(T)
- T不知道UI(仅限于C)
- T正在做某事然后将结果传递给B
- B在T
的范围内
- B受到来自UI
的回调绑定
- B正在通知C有关C的更改以完成其工作
- T不应对C
进行任何繁重的检查
- C不应该调用T或B
如何检测T中C的死亡并避免检查C是否为空
修改
我有很多想法要解决这个问题,但我希望通常可以将此类行为作为一种模式,但详细说明:
我尝试实现的目标:
- 避免让app做无意义的工作
- 避免超载互联网连接
- 不要重载HTTP服务器
我排除了什么解决方案:
- 将视图相等性循环为空检查
- 使用onAttachedToWindow()/ onDetachedFromWindow()作为API 12提供
- 挂钩到ViewTreeObserver()并注册侦听器失败
是cheeking isAlive和unregistering听众
(我希望避免在循环中为监听器设置面颊,也可以像面颊一样查看)