重复调用异步任务

时间:2016-02-27 21:54:59

标签: java android android-asynctask

我正在开发一个Android应用程序,我想在加载特定页面时调用AsyncTask。我需要一遍又一遍地调用AsyncTask。我是android开发的新手,如果我在解释中遗漏了任何内容,请告诉我。

2 个答案:

答案 0 :(得分:0)

让某些东西“反复运行”并不是一件好事 - 你可能会实施某种轮询,你不应该在移动设备上做各种各样的原因(最重要的是电池寿命和通过移动网络传输过多的数据。)

因此,请尝试评估您的业务标准,考虑缓存或“我多久需要一次新数据?”如果实施云到设备的消息传递可能是您的轮询需求的答案。

答案 1 :(得分:0)

您可以使用接口来解决此问题。

接口文件LoadingResultInterface.java:

public interface LoadingResultInterface {
    void onLoadingResult(int errorCode);
}

活动代码:

public class SomeActivity extends AppCompatActivity
        implements LoadingResultInterface {

    @Override
    public void onLoadingResult(int errorCode) {
        if (errorCode != xxxxx)
            new SomeLoader(this).execute();
    }
}

AsyncTask代码:

private class SomeLoader extends AsyncTask<Void, Void, Integer> {

    private Activity activity;
    LoadingResultInterface loadingListener;

    public SomeLoader(Activity activity) {
        this.activity = activity;
        loadingListener = (LoadingResultInterface)activity;
    }

    protected final Integer doInBackground(Void... params) {
        // int result = someJob();
        return result;
    }

    @Override
    protected void onPostExecute(Integer result) {
        super.onPostExecute(result);
        loadingListener.onLoadingResult(result);
    }
}