android - Instabug,如果没有互联网访问,是否可以停用摇动以获得反馈?

标签 android logging feedback network-state instabug

我有一个 networkStateReceiver,它检查我是否有互联网。 如果我这样做,我会重新启动 instabug,如果没有,我想停用。我怎样才能做到这一点? 我尝试将其设置为 null,但它不起作用。

if(haveConnectedMobile || haveConnectedWifi){
            //TODO will need to make a queue, and go through all that queue
            PSLocationCenter.getInstance().initInstabug();
        }else{
            PSLocationCenter.getInstance().instabug = null;
        }

这是我的初始化:

public void initInstabug() {
    String[] feedbackArray = getResources().getStringArray(R.array.feedback);
    String randomStr = feedbackArray[new Random().nextInt(feedbackArray.length)];
    Instabug.DEBUG = true;
    instabug = Instabug.initialize(this)
            .setAnnotationActivityClass(InstabugAnnotationActivity.class)
            .setShowIntroDialog(true, PSTimelineActivity.class)
            .enableEmailField(true, false)
            .setEnableOverflowMenuItem(true)
            .setDebugEnabled(true)
            .setCommentRequired(true)
            .setPostFeedbackMessage(randomStr)
            .setPostBugReportMessage(randomStr) //TODO will be the post report message, random from array
            .setCommentFieldHint("Please describe what went wrong")
            .setPreSendingRunnable(new Runnable() {
                @Override
                public void run() {
                    String[] files = new String[2];
                    files[0] = Environment.getExternalStorageDirectory() + "/Passenger/passenger_log.txt";
                    files[1] = Environment.getExternalStorageDirectory() + "/Passenger/passenger_log2.txt";
                    Compress compress = new Compress(files, Environment.getExternalStorageDirectory() + "/Passenger/log.zip");
                    compress.zip(new CrudStateCallback() {
                        @Override
                        public void onResponse(String string) {
                            Log.i("", "ended making the archive");
                        }
                    });
                }
            })
            .attachFileAtLocation(Environment.getExternalStorageDirectory() + "/Passenger/log.zip");
}

最佳答案

您可以使用此代码来禁用 Instabug 自动调用:

Instabug.getInstance().setInvocationEvent(IBGInvocationEvent.IBGInvocationEventNone)

这样它就不会被自动调用。这只会影响下一个 Activity (而不是当前 Activity )。您可以通过在当前 Activity 上调用 onPauseonResume 强制停止并重新启动所有监听器。 (不过我们可能会很快解决这个问题,以便将此类更改应用于当前正在运行的 Activity)。

不要忘记在恢复互联网访问时也启用摇动调用事件。

请记住,Instabug SDK 已经缓存了所有报告,并将在下次应用启动时重新尝试发送它们,直到它们成功上传。

关于android - Instabug,如果没有互联网访问,是否可以停用摇动以获得反馈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31179021/

相关文章:

android - 获取没有标题/通知栏的窗口大小

java - 音频/FFT库设计

android - 在不询问用户的情况下自动在 Android 日历上创建事件?

apache - 使用 apache/wsgi 时在日志中没有任何痕迹的 503

.net - Log4Net 配置问题

visual-studio - Azure Application Insights 的开源替代方案?

java - 如何清除特定 Activity 的缓存?

android - Android 中的方向停止

javascript - 更改 Feedback.js 以将信息和图片发送到电子邮件地址

windows-10 - 如何删除 Windows 10 上的白色触摸点