我在我的android应用程序中运行的一些异步任务有点问题。由于我正在使用某个网络IO,因此有时可能需要比预期更长的时间,并阻止其他异步任务运行。异步任务..不能调用executeOnExecutor()
我需要保持我的目标和min sdk版本,因为它们是以minSdkVersion =“8”为目标targetSdkVersion =“15”。我需要它,以便在调用Async任务时,我可以检查设备SDK,如果大于11,它可以调用executeOnExecutor(),而不是仅仅执行,以允许设备并行运行这些任务并阻止这种阻塞操作。
MyAsyncTask(this).executeOnExecutor();
我得到一个错误“的方法executeOnExecutor()是:
虽然我有15个目标SDK,打电话时我使用的设备有17
的SDK但是未定义的类型”,并提供给我唯一的选择就是:
MyAsyncTask(this).execute();
MyAsyncTask是一个扩展的AsyncTask和过载的标准方法onPreExecute,doInBackgroun类对象d,onProgressUpdate & onPostExecute。
我尝试以下这里列出的一些建议... http://steveliles.github.io/android_s_asynctask.html
确实谢谢,我只是不明白为什么它不会让我看到executeOnExecutor()方法。我已经解决了这个问题,通过更改android build target并适当地提高它。 –
@CommonsWare:你好,我知道'executeOnExecutor'的参数是'SERIAL_EXECUTOR'的目的,这个'执行器按顺序一次执行一个任务.'但是[在这种情况下](http://stackoverflow.com/问题/ 22889968/doinbackground-run-so-fast-when-using-asynctask-in-fragment)我试过但无法解决问题,你想帮我吗? –