1

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

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");
}
4

2 回答 2

2

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

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

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

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

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

于 2015-07-02T12:16:46.317 回答
0

只是想发布更新的答案。

较新的 SDK 已更改名称,现在您可以通过以下代码禁用它:

Instabug.changeInvocationEvent(InstabugInvocationEvent.NONE)

请注意,如果您想为整个应用程序禁用它,只需在您的Application类中调用此方法

于 2018-01-23T11:41:42.167 回答