我需要通过互联网访问来更新我的UI上的字段。我通过扩展AsyncTask在后台线程中进行Internet访问。
由于我每次刷新屏幕时都需要更新UI,因此我在onResume方法中执行AsyncTask:
@覆盖 protected void onResume(){ super.onResume();
的ShowDialog(REFRESH_DIALOG); 新的UpdateAgentStatusTask()。execute(); }
我在AsyncTask中的onPostExecute()方法中忽略了REFRESH_DIALOG对话框。
为了测试我将屏幕旋转到横向。事情很顺利。问题是当我尝试再次旋转到肖像时。我得到'java.lang.IllegalArgumentException:没有显示id 1的对话框......'。 id 1代表REFRESH_DIALOG。
如何摆脱此错误?每次刷新屏幕时,是否有更好的方法来进行互联网访问以更新我的UI?
谢谢, 人员Prasanna
答案 0 :(得分:0)
在使用AsyncTask中的onCancel()事件之前取消asyncTask。我不知道你是否必须在主活动的onPause()事件中自己取消任务,或者如果onCancel()在旋转期间被OS触发了。