【发布时间】:2013-01-08 09:23:31
【问题描述】:
我有一个 AsyncTask 在后台进行 SQLite 数据库迁移(创建或升级)。假设在 doInBackground 中抛出了一个 IOException 或 SQLiteException 并且应用程序继续运行是没有意义的,因为数据库状态可能不是所需的状态.我有点困惑在这种情况下该怎么做。
我正在考虑让应用程序尽快崩溃并显示带有错误消息的对话框,但我不确定如何在 doInBackground 中执行此操作,因为:
- 这个函数没有在UI线程中执行所以我不知道我是否可以显示一个对话框。
- 我不知道如何访问 AsyncTask 中的当前活动,因此无法finish()。
- 我想以某种方式将异常抛出到上层并让活动处理它,但这是不可能的,因为 doInBackground 没有将 IOException 列为已检查异常.
有人对如何优雅地处理这种情况有建议吗?
【问题讨论】:
标签: android exception-handling