【问题标题】:AsyncTaskLoader is not working properly on fragmentAsyncTaskLoader 在片段上无法正常工作
【发布时间】:2014-12-10 21:59:05
【问题描述】:

我正在尝试实现在片段中运行的 AsyncTaskLoader,但我不知道永远不会调用 onLoadFinished 的确切原因。我不确定我传递的上下文是否正确。

这是基本和自定义的 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 种方法:

@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();

最后要评论的细节是片段如何实现加载器回调:

public class FragmentName extends CustomFragment implements LoaderManager.LoaderCallbacks<String> 

让看看是否有人可以帮助我了解如何实施它。提前致谢。

【问题讨论】:

    标签: android android-fragments loader


    【解决方案1】:

    您必须在deliverResult 方法中调用super.deliverResult(apps)。否则,您的 CustomAsyncLoader 的超类不会负责将结果传递给已注册的侦听器。

    【讨论】:

      猜你喜欢
      • 2019-07-16
      • 1970-01-01
      • 2015-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多