Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如果我创建了新的加载程序,以前的加载程序是否会死亡或存储在内存中?_Android_Loader_Swiperefreshlayout - Fatal编程技术网

Android 如果我创建了新的加载程序,以前的加载程序是否会死亡或存储在内存中?

Android 如果我创建了新的加载程序,以前的加载程序是否会死亡或存储在内存中?,android,loader,swiperefreshlayout,Android,Loader,Swiperefreshlayout,我有一个为我的RecyclerView下载数据的加载程序。我已经将SwipperFTESH添加到此列表中,但我不知道如果我向下滑动几次,会发生什么。以前的加载程序是否会死亡或存储在内存中?看起来是这样的: refreshLayout.setOnRefreshListener(new OnRefreshListener() { @Override public void onRefresh() { initializeDiscoverLoader();

我有一个为我的RecyclerView下载数据的加载程序。我已经将SwipperFTESH添加到此列表中,但我不知道如果我向下滑动几次,会发生什么。以前的加载程序是否会死亡或存储在内存中?看起来是这样的:

refreshLayout.setOnRefreshListener(new OnRefreshListener() {
      @Override
      public void onRefresh() {
        initializeDiscoverLoader();
        refreshLayout.setRefreshing(false);
      }
    });


  private void initializeDiscoverLoader() {
    LoaderManager loaderManager = getLoaderManager();
    loaderManager.initLoader(R.integer.MOVIE_LOADER_DISCOVER_ID, null, MovieActivity.this);
  }

RefreshLayout只显示进度指示器并调用应用程序的回调方法。您在回调方法中所做的与RefreshLayout无关。因此,如果以前的加载程序已经运行,它们将一直运行,直到完成

使用相同的加载程序对象加载数据总是好的。这样,在任何给定的时间只有一个加载程序对象运行。您不会同时运行多个加载程序对象

另外,您在
onRefresh()
中使用了
refreshLayout.setRefresh(false)
,当
onRefresh()
完全执行时,Android会调用它本身,因此不需要使用它

参考资料-来自文件-

  • 当用户做出滑动手势时,系统会显示进度指示器并调用应用程序的回调方法。您的回调方法负责实际更新应用程序的数据

  • 当用户使用刷卡动作触发刷新时,如响应刷新手势中所述,您不需要调用setRefreshing()