Добавить пользовательский ввод в отчет о сбоях ACRA

По сути, это то, что я пытаюсь сделать, и ничего из того, что я пробовал, не работает. Всякий раз, когда происходит сбой, перед отправкой отчета ACRA я хотел бы отобразить EditText в диалоговом окне или что-то, что позволяет пользователю точно описать, что он делал, когда это произошло, и дать мне дополнительный контекст для отладки. Я знаю, что могу добавить любое настраиваемое поле в отчет о сбое, которое захочу, с помощью ACRA.getErrorReporter().putCustomData(), но проблема заключается в том, чтобы найти способ отобразить представление, в котором она могла бы ввести этот текст, когда приложение аварийно завершает работу. Логически это кажется невозможным, поскольку приложение разбилось, что, казалось бы, помешало мне создать экземпляр любого типа представления, но я решил опубликовать здесь, чтобы узнать, есть ли у кого-нибудь творческие решения, прежде чем я сдаюсь.


person ethan123    schedule 22.02.2015    source источник


Ответы (2)


В ACRA 4.6.1 вы можете настроить собственный диалог, который будет отображаться при сбое вашего приложения. Вы можете использовать это, чтобы включить EditText для захвата данных и поместить их в пользовательские данные ACRA.

person William    schedule 22.02.2015
comment
Прохладный. Какой метод я использую для этого? - person ethan123; 23.02.2015
comment
Укажите значение атрибута «reportDialogClass» в конфигурации ACRA. Он должен быть подклассом BaseCrashReportDialog. - person William; 23.02.2015

Лучший способ, который я нашел, - это скопировать весь CrashReportDialog в новый класс и изменить реализацию. BaseCrashReportDialog настолько прост, что вам обычно приходится писать всю функциональность в CrashReportDialog самостоятельно. С другой стороны, вы не можете расширить CrashReportDialog, потому что он скрывает много полезных переменных как приватные. Затем вы можете изменить

protected View buildCustomView(Bundle savedInstanceState)

реализация. К сожалению, все макеты задаются программно, и вы не можете просто заменить один layout.xml на другой.

person ZimaXXX    schedule 14.04.2016