最佳答案
我正在将我的代码从使用 Handler
转换为 AsyncTask
。后者非常擅长它所做的——异步更新和在主 UI 线程中处理结果。我不清楚的是如何处理异常,如果在 AsyncTask#doInBackground
中出现混乱。
我这样做的方式是有一个错误处理程序并向它发送消息。它工作得很好,但它是“正确”的方法,还是有更好的选择?
另外,我知道如果我将错误处理程序定义为一个 Activity 字段,那么它应该在 UI 线程中执行。然而,有时(非常不可预测地)我会得到一个异常,说从 Handler#handleMessage
触发的代码在错误的线程上执行。我应该在 Activity#onCreate
中初始化错误处理程序吗?将 runOnUiThread
放入 Handler#handleMessage
似乎是多余的,但它的执行非常可靠。