Android 应用使用 Asynctask 从服务器下载 JSON 数据

Android App to download JSON data from server using Asyntask

目前我正在构建一个应用程序来显示从服务器获取的数据。 要求是从服务器下载数据(JSON格式)并插入到phone的本地数据库中。

获取数据的过程是: 该应用程序必须调用 url 以转到 json 服务(例如 A)并获取另一个 url(http://www.XXX.json)以转到另一个 JSON 服务(B) 获取准确数据。

一个
{ "return_code" : 0, "return_msg" : "OK", "num_files" : 1, "total_size_bytes":1691857, "files":{ “0”:{ "size_bytes":1691857, "url":“http://www.XXX.json” } }, "request" : "http://www......" }

乙 {"tables": {"test":[ [ "30094394", "23432", "TESTING", "33342", "", "", "" ] ] …… } }

我尝试过AsynTask,但我不确定这个方法是否正确?我需要的解决方案是下载数据并将其插入后台 运行 的数据库中。 我希望能得到一些专家的建议。

谢谢。

AsyncTask 是实现此目的的好方法。 搜索 "async task json"。你应该找到很多教程。 我的第一次尝试是编写两个单独的 AsyncTasks,第一个从服务 A 下载 JSON,完成后启动第二个 AsyncTask,传入从服务 A 接收到的 URL。第二个 AsyncTask然后从 URL 加载 JSON 并将其保存到数据库中(全部在 doInBackground 中)。

按照以下步骤将数据从服务器获取到 android 应用。

1)在Manifest.xml文件中添加上网权限

2) 将 JSON 文件的 URL 作为参数传递给 asynctask,并在 doInBackground() 上获取该数据。 http://developer.android.com/reference/android/os/AsyncTask.html

3)使用 HTTpClient 从 doInBackground() 获取所有数据作为响应 http://developer.android.com/reference/org/apache/http/client/HttpClient.html

4) 解析从 doInBackground() 接收的数据作为 onPostExecute() 的结果。 http://www.androidhive.info/2012/01/android-json-parsing-tutorial/

5)任意操作数据