特定的AsyncTask是否针对特定的活动?或者我可以说一个RESTful APIManager,它调用了四个AsyncTask类中的一个,APIGET APIPOST APIPUT APIDELETE,并能够以这种方式处理网络代码?我的想法是能够在我的UI代码中调用类似的东西。
<edit> Class UserPrefs;
APIManager.createUser(JSONObject info);
APIManager.createUser {
// handle info
APIPost newPost = new APIPost(info);
}
APIPost extends AsyncTask {
doInBackground {
//network code
<edit> UserPrefs.save(result);
}
}这个模型可行吗?还是我滥用了AsyncTask?
发布于 2013-11-26 03:30:25
AsyncTasks自然适合RESTful服务,但它们并不依赖于活动的生命周期。您可以创建并启动异步任务,但当该任务完成其后台工作并调用onPostExecute时,内存中不再存在原始活动。因此,对于如何存储本地数据,您应该有一个更好的计划,而不是将其保存在Activity成员中,因为在Activity成员中,数据可能会频繁消失。为了避免颠簸,您应该将数据保存在某个地方。保存本地数据的候选对象是SharedPreferences、文件系统、数据库或应用程序单例对象,具体取决于数据和应用程序的性质。
发布于 2013-11-26 03:35:14
你可以使用ExecutorService,AsyncTasks在内部使用它。非常容易使用。
https://stackoverflow.com/questions/20201336
复制相似问题