Android. ACRA. Является ли putCustomData потокобезопасным

Кажется, я не могу найти ответ на этот вопрос:

Является ли метод из библиотеки ACRA...

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

... поток безопасно?

Я хотел бы назвать это из двух разных тем, и я не уверен, должен ли я или нет.

Я просмотрел документацию, но, к сожалению, я не смог найти ничего, связанного с этим, или, может быть, я просто плохой гуглер:)

2 ответа

Решение

Так что я думаю, что понял это.

Просматривая код, я заметил, что putCustomData Метод на самом деле вызов HashMap's метод, точнее put,

При дальнейшем поиске я обнаружил, что метод put не синхронизируется.

Так что ответ нет, звоню putCustomData из двух разных тем могут создать проблемы для вас.

Для решения проблемы: см. Идею 323go ниже. В моем случае у меня уже был одноэлементный класс, который я использовал, поэтому я просто поместил синхронизированный метод в тот класс, в котором я вызвал putCustomData метод.

Примечание: если я ошибаюсь, кто-нибудь, пожалуйста, дайте мне знать, но это то, что я смог выяснить.

Если вы не уверены, купите страховку:

ErrorReporter er = ACRA.getErrorReporter();
synchronized( er ) {
    er.putCustomData( ..., .... );
}
Другие вопросы по тегам