Я пытаюсь реализовать AsyncTaskLoader, работающий во фрагменте, и я точно не знаю, почему onLoadFinished никогда не вызывается. Я не уверен, что контекст, который я передаю, является правильным.AsyncTaskLoader не работает должным образом на фрагменте
Это основной и пользовательские AsyncTaskLoader:
public static class CustomAsyncLoader extends AsyncTaskLoader<String>
{
public CustomAsyncLoader(Context context) {
super(context);
// do some initializations here
}
@Override
protected void onForceLoad() {
// TODO Auto-generated method stub
super.onForceLoad();
}
@Override
public void deliverResult(String apps) {
}
@Override
protected void onStopLoading() {
// Attempts to cancel the current load task if possible
cancelLoad();
}
@Override
public void onCanceled(String apps) {
super.onCanceled(apps);
}
@Override
public String loadInBackground() {
String result = "";
// ...
// do long running tasks here
// ...
return result;
}
}
Здесь я покажу вам 3 метода overwritted:
@Override
public Loader<String> onCreateLoader(int arg0, Bundle arg1) {
// TODO Auto-generated method stub
return new CustomAsyncLoader(root.getContext());
}
@Override
public void onLoadFinished(Loader<String> arg0, String arg1) {
// TODO Auto-generated method stub
Toast.makeText(mContext, "onLoadFinish", Toast.LENGTH_LONG).show();
}
@Override
public void onLoaderReset(Loader<String> arg0) {
// TODO Auto-generated method stub
}
В методе onResume моего фрагмента я звоню инициализировать загрузчик :
getLoaderManager().initLoader(0, null, this).forceLoad();
и последняя деталь для комментариев - как реализован фрагмент t он обратный вызов погрузчика:
public class FragmentName extends CustomFragment implements LoaderManager.LoaderCallbacks<String>
Посмотрите, сможет ли кто-нибудь помочь мне в том, как его реализовать. Заранее спасибо.
Спасибо. Это решает проблему –