检测到父母死亡

时间:2015-07-03 18:42:29

标签: java android

好的,是时候写下我的第一个问题了:

如何检测父母的死亡(查看)

特别是当父母处于终止状态时。

情况下:

  • 在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是否为空

修改

我有很多想法要解决这个问题,但我希望通常可以将此类行为作为一种模式,但详细说明:

  • 我有搜索线程(执行任务无效/搜索/完成/进行/取消)
  • 使用任务VOID
  • 创建应用程序时启动线程
  • 某些活动收集数据将其作为新的搜索请求发送给线程,然后自行完成
  • 线程通知开始他的搜索任务&触发结果意图(显示结果的活动)
  • 此活动查看结果并设置calltack Thread.setBoundedView(view);
  • 下一个线程从其队列传递一部分数据到其适配器(在其范围内)
  • 适配器通知视图(回调到视图是在Thread.setBoundedView(view)方法中进行的)
  • 我想知道什么时候引用(查看父级)将孤立到sttop线程来自作业 - 调用wait()进行下一次搜索)以防:

    • 例外
    • onFinish();
    • 的onPause();

我尝试实现的目标:

  • 避免让app做无意义的工作
  • 避免超载互联网连接
  • 不要重载HTTP服务器

我排除了什么解决方案:

  • 将视图相等性循环为空检查
  • 使用onAttachedToWindow()/ onDetachedFromWindow()作为API 12提供
  • 挂钩到ViewTreeObserver()并注册侦听器失败 是cheeking isAlive和unregistering听众 (我希望避免在循环中为监听器设置面颊,也可以像面颊一样查看)

0 个答案:

没有答案