如何在android tablayout活动中使用异步任务.



大家好,需要知道使用选项卡中的异步布局活动的正确方法是什么。

在我的任务中,有一个包含两个选项卡的活动。

Tab1Tab2

Tab1从服务器加载数据并显示数据。

Tab2还从服务器加载另一个数据,并在列表视图中显示数据。

im在tab1和tab2中使用异步任务,但问题是当活动启动时,两个异步任务类同时执行,从而导致错误。

我需要如何在第一个选项卡片段可见时快速使用它,然后运行第一个异步任务,在第二个片段可见时,逐个运行第二个异步任务。

您可以同时使用以下两种场景:

1) 您可以在活动中调用两个AsyncTasks,并在两个选项卡中显示数据。

2) 根据问题

im在tab1和tab2中使用异步任务,但问题是当活动启动时,两个异步任务类同时执行会导致错误。

您应该在setUserVisibleHint()方法中执行AsyncTask,该方法将在您的片段完全可见时调用。

使用:

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
    // TODO Auto-generated method stub
    super.setUserVisibleHint(isVisibleToUser);
    if (isVisibleToUser) {
      // execute your asynctask here
    }
}

在我看来,您最好只使用一个异步任务从服务器获取数据,然后逐个使用选项卡处理

OnTabSelectedListener添加到TabLayout

// run asynctask 1 first and then
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
        @Override
        public void onTabSelected(TabLayout.Tab tab) {
            if (tab.getPosition() == 0)
                // run asynctask 1
            else // run asynctask2
        }
        @Override
        public void onTabUnselected(TabLayout.Tab tab) {
        }
        @Override
        public void onTabReselected(TabLayout.Tab tab) {
        }
    });

最新更新