现在已经确定,您不能在后台线程中更改UI组件。如果尝试这样做,您将得到可怕的CalledFromWrongThread
异常。与此类似,我们有NetworkOnMainThread
异常。所有这些崩溃都发生在某些后台线程中,它会使您的应用程序崩溃,这非常好。
话虽如此,在大型的android应用中,您可能会使用大量的第三方库和SDK来处理一些繁重的任务,而这些SDK有时会遗漏这些东西并导致某些与多线程相关的崩溃。我们应该避免使用它们或对其进行修复,但这会花费一些时间,尤其是如果SDK来自一家大公司(在我的情况下为Facebook)中。
在这种情况下,我们如何处理在合作伙伴的SDK中发生的崩溃,其功能可能无法起作用,但不会导致整个应用崩溃。我尝试了传统的try-catch
和其他技巧,但似乎都没有用。我也在合作伙伴方面提出了一个错误请求,但与此同时,我想要一个可以保护我的应用程序免于崩溃的解决方案。
有人对此有任何想法吗?