2012-02-09 3 views
1
class GoogleMusicAdapter extends TestFragmentAdapter implements TitleProvider { 
    public GoogleMusicAdapter(FragmentManager fm) { 
     super(fm); 
    } 

    @Override 
    public Fragment getItem(int position) { 

     if(position == 0) 
      return MyClass.newInstance(); 
     else if(position == 1) 
      return MyClass.newInstance(); 
     else 
      return MyClass.newInstance(); 

    } 

    @Override 
    public int getCount() { 
     return SampleTabsStyled.CONTENT.length; 
    } 

    @Override 
    public String getTitle(int position) { 
     return SampleTabsStyled.CONTENT[position % SampleTabsStyled.CONTENT.length]; 
    } 

} 

У меня есть AsyncTask в моем MyClass class.I использовать этот класс GoogleMusicAdapter в моем viewpager.Whenever я изменить страницы на другой он работает AsyncTask еще раз, но я не хочу этого. Он должен запускаться при запуске и не должен называться еще раз. Как я могу это сделать?данные фрагмент нагрузки на время

ответ

2

Сделать это одноэлементным?

private static class MyAsyncTask extends AsyncTask<Void,Void,Void> { 
    private MyAsyncTask mInstance; 

    public static boolean executeIfNotCreated() { 
     if(mInstance == null) { 
      mInstance = new MyAsyncTask(); 
      mInstance.execute(); 
      return true; 
     } 
     return false; 
    } 
    ... 
} 
+0

Okey, но как я могу запустить asynctask с этим? Как «new MyAsyncTask(). ExecuteIfNotCreated();" ? – droidmachine

+0

Хорошая точка ... 'executeIfNotCreated()' должен быть 'static'. Исправлен мой пример. Поэтому вы бы назвали 'MyAsyncTask.executeIfNotCreated()'. –

+0

Это не работает. Потому что он хочет, чтобы каждая переменная была статичной. – droidmachine

Смежные вопросы