2016-01-22 2 views
2

Я пытаюсь отправить отчет об исключении ACRA без закрытия приложения, но он все равно закрывает приложение и показывает диалог.Как отправить отчет об исключении ACRA без закрытия APP (даже показ диалога)

Отправка отчета об исключении подобным образом.

ACRA.getErrorReporter().handleException(finalException, false); 

Второй аргумент отвечает за закрытие приложения. Но он все равно показывает диалог, и приложение все равно закрывается.

Вот моя конфигурация, но я не думаю, что это будет полезно

@ReportsCrashes(
     reportType = org.acra.sender.HttpSender.Type.JSON, 
     httpMethod = org.acra.sender.HttpSender.Method.POST, 
     mode = ReportingInteractionMode.DIALOG, 
     resDialogText = R.string.crash_dialog_text, 
     resDialogIcon = android.R.drawable.ic_dialog_info, //optional. default is a warning sign 
     resDialogTitle = R.string.crash_dialog_title, // optional. default is your application name 
     resDialogCommentPrompt = R.string.crash_dialog_comment_prompt, // optional. When defined, adds a user text field input with this text resource as a label 
     resDialogOkToast = R.string.crash_dialog_ok_toast,// optional. displays a Toast message when the user accepts to send a report. 
     formUri = "aaaaaaaaa", 
     formUriBasicAuthLogin = "oooooooo", 
     formUriBasicAuthPassword = "bbbbbbbb" 
) 

Может быть, я делаю что-то не так, как только отправить отчет в фоновом режиме и не уведомлять пользователя.

Спасибо.

EDIT

Я прочитал исходный код и нашел только один способ сделать это.

ReportingInteractionMode previousMode = ACRA.getConfig().mode(); 
       try { 
        ACRA.getConfig().setMode(ReportingInteractionMode.SILENT); 
       } catch (ACRAConfigurationException e) { 
        e.printStackTrace(); 
       } 
       ACRA.getErrorReporter().handleException(finalException, false); 
       try { 
        ACRA.getConfig().setMode(previousMode); 
       } catch (ACRAConfigurationException e) { 
        e.printStackTrace(); 
       } 

Но, похоже, это еще один лучший способ сделать это.

ответ

Смежные вопросы