如何从其他 fragment 调用 fragment 中的AsyncTask?
Fragment中AsyncTask
的代码。
public class FileBrowserFragment extends Fragment {
private class ContiunedDownloadTask extends AsyncTask<FileBrowser, Integer, FileBrowser> {
@Override
protected FileBrowser doInBackground(FileBrowser... browsers) {
browsers[0].retrieveFileList(mDirectory, FileNode.Format.all, false) ;
return browsers[0] ;
}
@Override
protected void onPostExecute(FileBrowser result) {
Activity activity = getActivity() ;
if (activity == null)
return ;
if (activity != null) {
List<FileNode> fileList = result.getFileList() ;
mFileList.addAll(fileList) ;
mFileListAdapter.notifyDataSetChanged() ;
if (!result.isCompleted() && fileList.size() != 0) {
mFileListTitle.setText(mFileBrowser + " : " + mReading + " " + mDirectory + " ("
+ mFileList.size() + " " + mItems +")") ;
Log.i(TAG, "mFileListTitle-----11111 = " + mFileListTitle.getText());
new ContiunedDownloadTask().execute(result) ;
} else {
mFileListTitle.setText(mFileBrowser + " : " + mDirectory + " (" + mFileList.size()
+ " " + mItems +")") ;
Log.i(TAG, "mFileListTitle-----22222 = " + mFileListTitle.getText());
setWaitingState(false) ;
}
}
}
}
如何在另一个 fragment
中调用FileBrowserFragment
中的AsyncTask
?
最佳答案
只需在自己的文件中创建您的异步任务。为此,请创建另一个名为 ContiunedDownloadTask.java 的 java 文件并将您的类复制到其中。然后你可以调用下面的方法:
new ContiunedDownloadTask().execute(fileBrowser);
如果你真的想在 fragment 的类中保留类定义,那么你需要将它设为 public static 并像这样调用它:
new FileBrowserFragment.ContiunedDownloadTask().execute(fileBrowser);
关于android - 如何从其他 fragment 调用 fragment 中的 AsyncTask?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21063546/