私が抱えているこの質問に対する答えが見つからないようです:
ACRAライブラリのメソッドですか...
ACRA.getErrorReporter().putCustomData(Name, Content);
...スレッドセーフ?
2 つの異なるスレッドから呼び出したいのですが、そうすべきかどうかわかりません。
ドキュメントを検索しましたが、残念ながらこれに関連するものを見つけることができませんでした。または、私は単に悪い Googleler です :)
だから私はそれを理解したと思います。
コードを見ると、putCustomData
メソッドが実際にはメソッドの呼び出しであることがわかりました。HashMap's
より正確にはput
。
さらに検索したところ、メソッドput
が同期されていないことがわかりました。
したがって、答えはノーですputCustomData
。2つの異なるスレッドから呼び出すと、問題が発生する可能性があります。
この問題の解決策については、以下の323goのアイデアを参照してください。私の場合、使用したシングルトンクラスがすでにあるので、putCustomData
メソッドを呼び出したクラスに同期メソッドを配置しました。
注:私が間違っている場合は、誰かが私に知らせてください、しかしこれは私が見つけることができたものです。
よくわからない場合は、保険を購入してください。
ErrorReporter er = ACRA.getErrorReporter();
synchronized( er ) {
er.putCustomData( ..., .... );
}