我问了一个关于允许用户在崩溃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
)
答案 0 :(得分:0)
注意BaseCrashReportDialog中的注释,其中“[sub classes]必须在方法的开头调用super.onCreate()。”你需要这样做。
您还应该在onClick
中执行某些操作,例如致电BaseCrashReportDialog.sendCrash()
查看CrashReportDialog.java作为起点。
您还需要配置mode = ReportingInteractionMode.DIALOG