任何人都可以提出以下建议: 我正在尝试从Android的帮助页面执行代码,但它对我不起作用:
public class DownloadFilesTask extends AsyncTask<String, Integer, Long> {
protected Long doInBackground(String... urls) {
Log.e("TuneWiki", "Exec");
return 1l;
}
@Override
protected void onPostExecute(Long result) {
Log.e("TuneWiki", "Post");
}
}
当我执行task时,doInBackground被调用很好,但是从不调用onPostExecute:(
使用2.1操作系统测试里程碑
答案 0 :(得分:6)
谢谢大家 - 我找到了原因。如果即使所有线程都成功完成也会在很多线程启动之前,AsyncTask因某些原因停止工作。
答案 1 :(得分:1)
使用AsyncTasks进行文件下载并不是一个好主意(正如AsyncTask的名称所示)。 AsyncTasks不应用于网络等长时间运行的操作。实际上,AsyncTask有两个相关的主要问题:
在RoboSpice动机应用(available on Google Play)内,我们会详细回答这个问题。它将深入介绍AsyncTasks,Loaders及其功能和缺点,并向您介绍网络请求的替代解决方案:RoboSpice。
我们甚至提供了an infographics来解释这个问题。用几句话说出来
我鼓励您下载RoboSpice Motivations app,它确实深入地解释了这一点,并提供了进行某些后台操作的不同方法的示例和演示。