我需要做一个互联网访问,以更新我的用户界面上的字段。我通过扩展AsyncTask在后台线程中进行互联网访问。
由于我需要在每次刷新屏幕时更新UI,因此我在onResume方法中执行AsyncTask:
@Override 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
发布于 2010-11-02 05:51:08
在使用AsyncTask中的onCancel()事件离开之前,请取消asyncTask。我不知道您是否必须在主活动的onPause()事件中实际取消任务,或者是否必须在轮换期间由操作系统触发onCancel()。
https://stackoverflow.com/questions/4073334
复制相似问题