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( ..., .... );
}