android - 如何从其他 fragment 调用 fragment 中的 AsyncTask?

标签 android android-fragments android-asynctask

如何从其他 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/

相关文章:

java - 如何使用 ZipOutputStream 压缩单个字符串并将其保存为可读字符串

android - 如何使用 OKHTTP 处理新证书?

android - 在 AsyncTask 中填充 ViewFlipper

android - 在 Adapter 初始化之前调用的方法,在 Android 中适配器初始化之后执行

java - 安卓 : How to Pass the JSON object From AsncTask class to the Main Class

java - Android 在解析 rss 时删除 <br/>

android - 如何在android模拟器上模拟网络延迟?

java - 无法从同一 Activity 更改 Fragment 内 TextView 的文本

java - 我在onAttach方法的AlertDialog类中遇到错误CastClassException

Android 主从 fragment 保留细节状态