如何使用 Acra reportDialogClass



我在这里问了一个关于允许用户在崩溃时添加自定义注释的问题,并得到了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对我来说似乎有点令人困惑,因为我本来希望它能为弹出对话框提供某种框架,但它只是从活动扩展而来,因此我试图显示我自己的AlertDialog。有没有人想出如何正确实现这个新功能?谢谢

根据威廉的要求编辑:

@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
        )

请注意 BaseCrashReportDialog 中的注释,其中显示"[子类] 必须在方法开头调用 super.onCreate()。你需要这样做。

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

看看CrashReportDialog.java作为一个起点。

您还需要配置mode = ReportingInteractionMode.DIALOG

相关内容

  • 没有找到相关文章

最新更新