当AsyncTask完成后,我通常会执行以下操作之一:
- 在活动中定义一个回调对象/接口并将其传递给My AsyncTask子类构造函数,然后调用回调对象/接口上的方法。
- 为AsyncTask提供Handler,并在任务完成时调用myHandler.sendMessage()。
我的问题是,在AsyncTask完成后,什么被认为是最佳实践。如果用户在任务处理过程中按下主页按钮,则该活动不再处于前台。当应用程序尝试进行UI操作以响应任务完成时,操作系统会抛出WindowManager$BadTokenException异常。
我当然可以使用BadTokenException的catch语句来包围我的UI代码。但这似乎有些hacky。是否有任何方法可以判断活动是否在前台?