【问题标题】:Why is ModelFragment.deliverModel() synchronized in CommonsWare 4.7 turorial #12?为什么 ModelFragment.deliverModel() 在 CommonsWare 4.7 教程 #12 中同步?
【发布时间】:2013-05-19 21:37:11
【问题描述】:

我正在按照 CommonsWare 大师书 4.7 版的方式工作。我正在学习教程#12。我的问题与ModelFragment 中的deliverModel() 方法有关。为什么要同步?

我的困惑来自我的理解,即该方法 (deliverModel()) 应该已经只能从 UI 线程调用。它是从片段onActivityCreated()AsyncTask onPostExecute() 调用的。

谢谢你,李

【问题讨论】:

  • 您同步对象是为了确保当时只有一个线程可以处理数据。我没有机会看到这个教程来告诉你在这种情况下这是什么原因。

标签: android commonsware


【解决方案1】:

为什么要同步?

显然没有充分的理由。我确信我曾经有一个原因,但你是对的——它目前只在主应用程序线程上调用。我会在将来某个时候删除synchronized 关键字。

【讨论】:

  • 非常感谢马克。我希望你会说这样的话。看起来该方法在某个时候被重构了,这就是同步的保留方式。我假设这也是为什么它看起来在 else 部分中留下了额外的“内容 == null”的原因。真的没关系,与我的同步问题相比,这简直是小菜一碟。
猜你喜欢
  • 1970-01-01
  • 2018-12-02
  • 2014-09-25
  • 2011-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多