如何使用Acra reportDialogClass

时间:2015-03-07 11:49:27

标签: android acra

我问了一个关于允许用户在崩溃here时添加自定义评论的问题,并得到了一个提示,即ACRA 4.6包含了一个机制。我无法找到关于如何使用它的任何文档或示例,所以我试图弄清楚自己,但我没有成功地获得我想要的行为。例如,我尝试将其添加到注释中:

reportDialogClass = CustomReportDialog.class

这就是我写的,看看我是否能得到一个对话框来显示:

import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;

import org.acra.BaseCrashReportDialog;

public class CustomReportDialog extends BaseCrashReportDialog {
    @Override
    protected void onCreate(Bundle savedInstanceState) {

        new AlertDialog.Builder(getApplicationContext()).setMessage("yo").setPositiveButton("pos", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {

            }
        }).create().show();
    }
}

一般来说,BaseCrashReportDialog.class似乎让我感到困惑,因为我本来希望它为弹出的对话框提供某种框架,但它只是从Activity扩展,因此我试图展示自己的AlertDialog 。有没有人想出如何正确实现这个新功能?感谢

编辑Per William的要求:

@ReportsCrashes(
        formUri = BuildConfig.SERVER_DOMAIN,
        mode = ReportingInteractionMode.TOAST,
        resToastText = R.string.crash_toast_text,
        disableSSLCertValidation = true,
        additionalSharedPreferences = {BuildConfig.APPLICATION_ID},
        excludeMatchingSharedPreferencesKeys = {CommonUtils.PROPERTY_REG_ID, CommonUtils.PREFS_SESSION_TOKEN},
        reportDialogClass = CustomReportDialog.class
        )

1 个答案:

答案 0 :(得分:0)

注意BaseCrashReportDialog中的注释,其中“[sub classes]必须在方法的开头调用super.onCreate()。”你需要这样做。

您还应该在onClick中执行某些操作,例如致电BaseCrashReportDialog.sendCrash()

查看CrashReportDialog.java作为起点。

您还需要配置mode = ReportingInteractionMode.DIALOG