ListFragmentにいくつかのデータを表示する必要があります。AsyncTaskを使用してインターネットからデータをダウンロードしてから、Adapterを使用してデータを更新しています。
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
activity = getActivity();
context = activity.getApplicationContext();
res = activity.getResources();
resFactory = createFactory(context);
dataFolder = resFactory.getDataFolder();
dataFile = resFactory.getDataFile();
ArrayList list = resFactory.getArrayList();
setListAdapter(resFactory.getAdapter(context, list));
linkToData = resFactory.getDataLink(res);
getData();
}
getData
私は始めていAsyncTask
ます。
getData
1つのユーザーセッション内で1回だけ実行したい。そのため、フラグメントを切り離してから再度アタッチした場合、データを再度ダウンロードしたくありません。ただし、フラグメントが作成されたばかりの場合は、データをダウンロードする必要があります。
それに対する簡単な答えはgetData
からの呼び出しonCreate()
ですが、その時点で私にはがないので、nullPointerを取得しますAsyncTask
。ですから、フラグメントが作成されたばかりなのか、それともデタッチしてから再度アタッチしただけなのかをどうにかして知る必要があります。
英語は私の母国語ではありません。質問がよくわからない場合は申し訳ありません。