viewpager中的Android异步任务
我正在使用FragmentStatePagerAdapter设置ViewPager内容。在适配器的getItem()方法中,我调用了一个片段。我想在每个视图页面片段上动态显示来自服务器的产品图像和名称。我在片段的OnCreateView()中调用异步任务。但也会调用相邻产品的异步任务。我想知道哪种方法最好 我应该提前执行异步任务并设置视图寻呼机的适配器吗?如果是这样的话,我有1000多种产品,设置适配器需要花费大量时间 或者我应该在每个页面加载后执行异步任务?但在这里,每次我来到页面,它都会不断地从服务器加载数据。我希望数据只在我第一次访问页面时加载,在下一次滑动时,它应该简单地显示,而不是再次从服务器获取 我也希望这是一个无限查看寻呼机适配器,这是怎么可能的 非常感谢:) 。。。我希望数据只在我第一次访问页面时加载,在下一次滑动时,它应该简单地显示,而不是再次从服务器获取 将viewpager中的Android异步任务,android,android-fragments,android-asynctask,android-viewpager,Android,Android Fragments,Android Asynctask,Android Viewpager,我正在使用FragmentStatePagerAdapter设置ViewPager内容。在适配器的getItem()方法中,我调用了一个片段。我想在每个视图页面片段上动态显示来自服务器的产品图像和名称。我在片段的OnCreateView()中调用异步任务。但也会调用相邻产品的异步任务。我想知道哪种方法最好 我应该提前执行异步任务并设置视图寻呼机的适配器吗?如果是这样的话,我有1000多种产品,设置适配器需要花费大量时间 或者我应该在每个页面加载后执行异步任务?但在这里,每次我来到页面,它都会不断
AsyncTask
调用从OnCreateView
移动到:将在用户可见片段时执行:
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
// launch your AsyncTask here, if the task has not been executed yet
if(aTask.getStatus().equals(AsyncTask.Status.PENDING)) {
aTask.execute();
}
}
}
。。。我也希望这是一个无限查看寻呼机适配器,这是怎么可能的
这已经得到了回答,即:
-如果我在setUserVisibleHint()中调用异步任务,异步任务不是每次转到每个页面时都会被调用吗?用户不会一直在所有页面上看到加载消息吗?是的。这是您必须检查它是否挂起(尚未执行)的方法。您说过您希望它只在用户第一次进入页面时执行。每当每个页面都可见时,就会调用这段代码。它不是第一次单独执行aysnc任务。每当页面变为可见时,它都会在每个页面上执行。如果(aTask.getStatus().equals(AsyncTask.Status.PENDING)){aTask.execute();}正好。我从您的Q中理解了这一点。但是,如果您希望对viewpager中的所有片段执行一次
AsyncTask
,则应该在容器活动的onCreate
中执行它,然后将数据传递给片段。但是,如果你不发布一些代码来展示你已经做了什么,那就是猜测。谢谢。拯救了我的问题。