我有一个 Android 服务,它使用单独的线程对图像进行一些后台处理。如果此服务中发生错误或线程中发生更糟的错误,最好的做法是将问题通知启动 Activity 并允许应用程序恢复到稳定状态(即它在启动服务之前所处的状态)。
我可以在服务中发布 Toast 或通知,但这对我没有帮助。我想将问题通知用户,但同时将应用程序恢复到稳定状态。
最佳答案
如果有人搜索这个,我会解释我最终做了什么。
在该服务中,我添加了一个扩展 AsyncTask 的私有(private)类。这是所有处理完成的地方。
在这个类中我有一个私有(private)变量'exception'。 doInBackground 方法的内容被 try/catch 包围,捕获到的任何异常都存储在“exception”中。在 onPostExecute 方法中,我检查是否设置了“异常”,如果是这种情况,我发送一个包含异常详细信息的广播 PROCESSING_ERROR,以便通知调用 Activity 。
如果您不知道什么是AsyncTask、doInBackground 或onPostExecute,您应该阅读以下内容:
关于android - Android 服务中错误处理的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13108875/