나는 이것을 방지하기 위해 부울을 사용했다. 나는 그것이 매우 깨끗한 방법이라고 생각하지 않는다. 탭이 선택되었을 때 true로 설정된 경우 부울을 설정하고 탭을 선택한 경우에만 asynctask를 실행하십시오.
그래서 내 MainActivity에서 나는의 배열을 3
public static boolean[] selected = new boolean[3];
나는 설명과 함께 각 탭을 표시 (정적 내가 귀하의 경우에는 필요하지 않을 수도 있습니다 사용하는 외부 클래스와 함께해야 할)
프래그먼트
public void onTabSelected(Tab tab, android.app.FragmentTransaction ft)
{
getSupportFragmentManager().popBackStack();
if (tab.getContentDescription() == "tab1")
{
mViewPager.setAdapter(mAppSectionsPagerAdapter);
selected[0] = true;
selected[1] = false;
selected[2] = false;
mAppSectionsPagerAdapter.notifyDataSetChanged();
}
if (tab.getContentDescription() == "tab2")
{
mViewPager.setAdapter(mAppSectionsPagerAdapter);
selected[0] = false;
selected[1] = true;
selected[2] = false;
mAppSectionsPagerAdapter.notifyDataSetChanged();
}
if (tab.getContentDescription() == "tab3")
{
mViewPager.setAdapter(mAppSectionsPagerAdapter);
selected[0] = false;
selected[1] = false;
selected[2] = true;
mAppSectionsPagerAdapter.notifyDataSetChanged();
}
:
if (MainActivity.selected[0])
{
// asynctask fragment
}