我正在开发一个 android 应用程序,我需要在其中下载一些图像并开始幻灯片放映。为了下载图像,我使用的是 AsynTask,一旦图像被下载,我就使用处理程序来开始幻灯片放映。但是在方向改变期间,我无法控制处理程序。因为处理程序对象是用 AsyncTask 类定义的。
以下是我所做的大致情况:
A 类扩展 Activity
B 类异步 = 新 ClassB(this);
async.execute();
B类扩展AsyncTask实现OnPageChangeListener、OnTouchListener
onPreExecute() --------这个方法什么都没有
doInBackground --------我在这里下载图片
onPostExecute ---------处理程序从这里开始,每 5 秒运行一次,以实现幻灯片放映
现在的问题:
在方向更改期间,我确保 AsyncTask 仅被调用一次,否则它会再次下载图像,因此处理程序在方向更改期间未运行。
启动的第一个处理程序对象,它继续运行,但更改不会反映在屏幕上。
我正在考虑以一种方式实现,即使用 AsyncTask 下载图像,一旦下载完成,ClassA 应该获得焦点,并且应该在 ClassA 中实现处理程序(仅在下载图像时)。