Android,了解AsyncTask

时间:2013-11-25 19:16:07

标签: android android-asynctask

针对特定活动的具体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?

2 个答案:

答案 0 :(得分:0)

AsyncTasks非常适合RESTful服务,但它们与活动的生命周期无关。您可以创建并启动Async任务,但是当任务完成其后台工作并调用onPostExecute时,内存中不再存在原始活动。因此,您应该有一个更好的计划来存储本地数据,而不是将其保存在Activity成员中,它可以经常消失。为避免颠簸,您应该将数据保存在某处。保存本地数据的候选者是SharedPreferences,文件系统,数据库或Application单例对象,具体取决于数据和应用程序的性质。

答案 1 :(得分:0)

您可以使用ExecutorService,AsyncTasks在内部使用它。非常容易使用。