Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于异常处理机制 #123

Open
dlluotian opened this issue Nov 14, 2022 · 3 comments
Open

关于异常处理机制 #123

dlluotian opened this issue Nov 14, 2022 · 3 comments

Comments

@dlluotian
Copy link

这个有个小小的建议,希望SDK只能加个参数,自己处理异常,比如结束当前进程并重启,而不是直接结束程序。
现在要满足重启的需要,只能修改源码

@superoidlau
Copy link

rethrow 这个设置为true,然后你可以自己再次拿到这个异常去处理。

@superoidlau
Copy link

这个有个小小的建议,希望SDK只能加个参数,自己处理异常,比如结束当前进程并重启,而不是直接结束程序。 现在要满足重启的需要,只能修改源码

直接结束,是因为你把rethrow 设置为false导致的。

@dlluotian
Copy link
Author

这个有个小小的建议,希望SDK只能加个参数,自己处理异常,比如结束当前进程并重启,而不是直接结束程序。 现在要满足重启的需要,只能修改源码

直接结束,是因为你把rethrow 设置为false导致的。

感觉您的回复,只是如果不修改源码,只是将rethrow设置true,可以实现重启,但是效果并不好的,我测试设备小米11,这样会白屏一段时间,并且有几率无法重启,原因不明。

修改成如下,就会非常丝滑

    if (this.rethrow) {
        if (defaultHandler != null) {
            defaultHandler.uncaughtException(thread, throwable);
        }
    } else {
        //这里我们自己做重启逻辑
    try {
        Thread.sleep(500);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    ProcessPhoenix.triggerRebirth(getContext());
    }

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants