我似乎找不到这个问题的答案:
是ACRA库中的方法...
ACRA.getErrorReporter().putCustomData(Name, Content);
..。线程安全?
我想从两个不同的线程调用它,但我不确定是否应该这样做。
我已经搜索了文档,但不幸的是我找不到任何与此相关的东西,或者我只是一个糟糕的谷歌员工:)
发布于 2013-03-08 00:59:26
所以我想我已经弄清楚了。
浏览一下代码,我注意到putCustomData方法实际上是对HashMap's方法的调用,更准确地说是put。
经过进一步的搜索,我发现put方法是不同步的。
所以答案是否定的,从两个不同的线程调用putCustomData会给你带来问题。
有关问题的解决方案:请参阅下面的323go的想法。在我的例子中,我已经使用了一个单例类,所以我只是在那个类中放置了一个同步方法,并在其中调用了putCustomData方法。
注:如果我错了,请有人让我知道,但这是我能够找到的。
发布于 2013-03-08 00:35:00
如果你不确定,买一些保险:
ErrorReporter er = ACRA.getErrorReporter();
synchronized( er ) {
er.putCustomData( ..., .... );
}https://stackoverflow.com/questions/15276469
复制相似问题