有没有办法在 Java 文档中指定应该从非 UI 线程调用方法

Posted

技术标签:

【中文标题】有没有办法在 Java 文档中指定应该从非 UI 线程调用方法【英文标题】:Is there a way to specify in Java docs that a method should be called from a non-UI thread 【发布时间】:2017-08-22 11:19:54 【问题描述】:

我正在编写一组函数,用于在我的 android 应用程序中访问/写入数据到 SQLite 数据库。由于我需要使用getWritableDatabase() 来获取数据库实例,并且需要在非 UI 线程中调用它,我想知道是否有一种干净的方法可以在这些函数的 java 文档中指定相同的警告?

另外,我需要进一步说明如何使用getWritableDatabase() 处理数据库实例。我应该在需要将内容写入数据库的任何地方调用它,对吗?或者我可以在应用程序级别调用一次并使用相同的句柄访问应用程序中不同位置的数据库吗?

【问题讨论】:

您实际上是在问两个非常不同的问题。我建议你把这个问题分开,为第二段再写一个。 【参考方案1】:

这类事情没有固定的规则。您只能依赖约定/样式。

换句话说:尝试提出明确、明确的措辞,并确保这部分易于阅读并且可以在您的 javadoc 中快速找到(检查生成的 html 以及这些属性)。

然后为忽略您的 javadoc 的人的错误报告做好准备。

【讨论】:

【参考方案2】:

除了在 javadoc 中留下警告之外,您还可以添加验证,即检测您是否在 UI 线程上(请参阅How to check if current thread is not main thread),然后抛出异常。

记录该异常。

【讨论】:

以上是关于有没有办法在 Java 文档中指定应该从非 UI 线程调用方法的主要内容,如果未能解决你的问题,请参考以下文章

AnyLogic:有没有办法在优化实验中指定决策变量数组?

有没有办法在 Ktor 中指定通配符路由?

在 JSON API 中指定排序顺序

有没有办法在 app.xaml 文件的样式中指定 OnPlatform ?

有没有办法通过在 SION 中指定频率而不是音符来播放声音?

有没有办法在 Ruby YAML 文件中指定 ruby​​ 类/模块常量作为值