我似乎找不到这个问题的答案:
是ACRA库中的方法…
ACRA.getErrorReporter().putCustomData(Name, Content);
…线程安全?
我想从两个不同的线程调用它,我不确定是否应该。
我已经通过文档搜索,但我没能找到任何与此相关的不幸,或者也许我只是一个坏Googleler:)
如果你不确定,买一些保险:
ErrorReporter er = ACRA.getErrorReporter();
synchronized( er ) {
er.putCustomData( ..., .... );
}
我想我已经弄明白了。
查看代码,我注意到putCustomData
方法实际上是对HashMap's
方法的调用,更准确地说是put
。
经过进一步的搜索,我发现put
方法没有同步。
所以答案是否定的,从两个不同的线程调用putCustomData
会给你带来问题。
对于问题的解决方案:参见下面323go的想法。在我的例子中,我已经使用了一个单例类,所以我只是在那个类中放置了一个同步方法,我在其中调用了putCustomData
方法。
注意: 如果我错了,请有人让我知道,但这是我能找到的