2

У меня есть asynctask в моем фрагменте. Когда я получаю этот фрагмент, он загружает все данные с самого начала, но это отходы для меня. Поэтому я хочу, чтобы он загружался только один раз. Как я могу исправить это ?Использование asynctask в фрагменте

ответ

4

Вы можете поместить его в метод onCreate или onActivityCreated.

Дополнительная информация о жизненном цикле фрагмента: Fragments.

+0

Я думаю, что проблема that.I положить AsyncTask выполнить метод в OnCreate или onActivityCreated, результат никогда не changed.It нагрузки каждый time.I использовать этот фрагмент в виде пейджера. – droidmachine

+0

вы можете попробовать включить setRetainInstance (true); в вашем методе onActivityCreated. Это приведет к тому, что onCreate() фрагмента не будет вызываться при каждом изменении конфигурации. – Scott

+0

По-прежнему загружается каждый раз: S – droidmachine

0

В каком коде вы хотите загрузить исходные данные? Вы изначально загружаете его из родительской активности? Где бы это ни было, вам нужно реализовать свою AsyncTask и сохранить список элементов. не внутри фрагмента. Оттуда, вам просто нужно сделать следующее в вашем фрагменте:

public class Android extends Fragment{  
    @Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 
     /** Grab your initial data **/ 
     setListAdapter(new ArrayAdapter<String>(context, layout, <your data>); 
    } 
} 
+0

где ? как получить данные из родительской активности? – topwik