我正在开发一个Android应用程序,我想在加载特定页面时调用AsyncTask。我需要一遍又一遍地调用AsyncTask。我是android开发的新手,如果我在解释中遗漏了任何内容,请告诉我。
答案 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);
}
}