首页 > 代码库 > Callback AsyncTask to Fragment

Callback AsyncTask to Fragment


---------------------------

//设置回调接口的Fragment
public class TestFragment extends Fragment {

  //启动异步任务
    private void methodThatStartsTheAsyncTask() {
        TestAsyncTask testAsyncTask = new TestAsyncTask(new FragmentCallback()     {
            @Override
            public void onTaskDone() {
                methodThatDoesSomethingWhenTaskIsDone();
            }
        });
    }

    private void methodThatDoesSomethingWhenTaskIsDone() {
       //异步任务完成后的操作
    }

    public interface FragmentCallback {
        public void onTaskDone();
    }
}

-----------------------------------------------------

public class TestAsyncTask extends AsyncTask<Void, Void, Void> {
    private FragmentCallback mFragmentCallback;

    public TestAsyncTask(FragmentCallback fragmentCallback) {
        mFragmentCallback = fragmentCallback;
    }

    @Override
    protected Void doInBackground(Void... params) {
        /*
         * Do your thing.
         */

        return null;
    }

    @Override
    protected void onPostExecute(Void result) {
        mFragmentCallback.onTaskDone();
    }
}