0

私が抱えているこの質問に対する答えが見つからないようです:

ACRAライブラリのメソッドですか...

ACRA.getErrorReporter().putCustomData(Name, Content);

...スレッドセーフ?

2 つの異なるスレッドから呼び出したいのですが、そうすべきかどうかわかりません。

ドキュメントを検索しましたが、残念ながらこれに関連するものを見つけることができませんでした。または、私は単に悪い Googleler です :)

4

2 に答える 2

1

だから私はそれを理解したと思います。

コードを見ると、putCustomDataメソッドが実際にはメソッドの呼び出しであることがわかりました。HashMap'sより正確にはput

さらに検索したところ、メソッドputが同期されていないことがわかりました。

したがって、答えはノーですputCustomData。2つの異なるスレッドから呼び出すと、問題が発生する可能性があります。

この問題の解決策については、以下の323goのアイデアを参照してください。私の場合、使用したシングルトンクラスがすでにあるので、putCustomDataメソッドを呼び出したクラスに同期メソッドを配置しました。

注:私が間違っている場合は、誰かが私に知らせてください、しかしこれは私が見つけることができたものです。

于 2013-03-07T16:59:26.470 に答える
1

よくわからない場合は、保険を購入してください。

ErrorReporter er = ACRA.getErrorReporter();
synchronized( er ) {
    er.putCustomData( ..., .... );
}
于 2013-03-07T16:34:59.670 に答える