我是android开发新手。我想完成描述任务如下:处理UI的Android异步任务
- 主activty它调用外部类(其他类将扩大
AsyncTask
)来解析xml
和请求的Web服务接收json
并启动ProgressDialog
。 - 该类执行
xml
和json
解析其doInBackground
方法。 - 在解析完成后的
onPostExecute
方法中,关闭主活动中设置的ProgressDialog
。 - 我可以通过将ProgressDialog对象传递给解析类并在其
onPostExecute
方法中关闭同一对象。
我想通过UI对象的实例作为参数不是一个好方法程序,希望必须有一些其他的方式来解决。
请建议。 谢谢
+1 :)在理论上,他仍然会这样,我引用了“将实例传递给AsyncTask”。我想知道OP是否在印象之下复制整个实例? – JustDanyul
好点。就像在Java中所有这样的调用中一样,实例不会被复制,这既是好事也是坏事。好,因为它不会创建没有好理由的对象。不好的,因为这可能是内存泄漏的来源,特别是如果异步任务需要在配置更改的情况下继续工作,会导致活动中断。 –
是的,如果参考未清除,您将在方向开关上泄漏原始活动及其所有视图。当活动正在消失时,您需要处理这种情况,并在活动重新创建后分离并重新附加。 – dmon