今天Pei讲了一个android获取json数据的方式吧
代码什么的没看懂,反正知道就是那么一回事,用AsyncTask线程来获取json数据,我也不知道这样说对不对
估计以后回过来看的时候会发现一大堆的错,反正不管了,今天学到的就这么多,Pei老师的英文听的也是半懂半不懂的
然后自己琢磨了下还是半懂半不懂的,心累!
你可以在上面找关于movie的信息,引用百科的话:
OMDB API
此接口的作者为 Brian Fritz,是之前 The IMDB API 接口的作者,因为受到 IMDb 官方的要求而更换了域名,是较早一批提供 IMDb 数据检索的服务(RESTful 接口)。
在英文世界,该服务有较高的知名度。
该接口支持JAVASCRIPT调用。
不过国内也有一个,如果你不懂英文的话,可以看看这个:
MDb API ORG
此接口由国人开发[2] ,是一个轻量级的Web服务(RESTful 接口),它提供一种 IMDb 数据的有效访问方式。就像前面说的一样,虽然IMDb的数据可以在官网上免费下载,但是却没有提供一个很好的 API 来检索这些信息。此 Web 服务旨在一定范围内解决这一问题。[3]
此接口相较于其它接口具备以下特点:
1) 支持中文译名检索
2) 支持中文数据返回
3) 支持JAVASCRIPT调用接口(可以使用 AJAX 技术直接获取结果,非 JSONP 方式)
4) 返回的数据字段更丰富
5) 支持多条结果返回
6) 请求限制宽松
此接口是唯一支持中文检索的 IMDb API。
另外说说这个网站:
Pei老师知识果然博大精深,原谅我不知道这个网站,以后再也不用担心找不到好看的电影了,瞬间高大上
顺便说下,OMDB API的作用,其实很多情况下,你不能直接从IMDB上获取信息,套用官方的话来说:
IMDb的数据在官网上可以免费下载,可惜的是免费提供下载的数据是文本格式,不能检索。为了使IMDb的数据能够被更多人使用,许多开发人员用各自的方法实现了不同的 API
所以在OMDB上,你可以检索Movie的信息,然后你可以应用到android上去,不过太具体的作用我也不是那么清楚,too young too simple
上午之前Pei一直在讲AsyncTask的应用,这是个异步任务,通俗点来说就是android里面的多线程,第一次接触这个,看里面实现的代码,都可以看得懂,不难,这里附上一个链接,讲解这个的
还有一个非常基础的知识:
一个异步任务的执行一般包括以下几个步骤:
1.execute(Params... params),执行一个异步任务,需要我们在代码中调用此方法,触发异步任务的执行。
2.onPreExecute(),在execute(Params... params)被调用后立即执行,一般用来在执行后台任务前对UI做一些标记。
3.doInBackground(Params... params),在onPreExecute()完成后立即执行,用于执行较为费时的操作,此方法将接收输入参数和返回计算结果。在执行过程中可以调用publishProgress(Progress... values)来更新进度信息。
4.onProgressUpdate(Progress... values),在调用publishProgress(Progress... values)时,此方法被执行,直接将进度信息更新到UI组件上。
5.onPostExecute(Result result),当后台操作结束时,此方法将会被调用,计算结果将做为参数传递到此方法中,直接将结果显示到UI组件上。
在使用的时候,有几点需要格外注意:
1.异步任务的实例必须在UI线程中创建。
2.execute(Params... params)方法必须在UI线程中调用。
3.不要手动调用onPreExecute(),doInBackground(Params... params),onProgressUpdate(Progress... values),onPostExecute(Result result)这几个方法。
4.不能在doInBackground(Params... params)中更改UI组件的信息。
5.一个任务实例只能执行一次,如果执行第二次将会抛出异常。
1.execute(Params... params),执行一个异步任务,需要我们在代码中调用此方法,触发异步任务的执行。
2.onPreExecute(),在execute(Params... params)被调用后立即执行,一般用来在执行后台任务前对UI做一些标记。
3.doInBackground(Params... params),在onPreExecute()完成后立即执行,用于执行较为费时的操作,此方法将接收输入参数和返回计算结果。在执行过程中可以调用publishProgress(Progress... values)来更新进度信息。
4.onProgressUpdate(Progress... values),在调用publishProgress(Progress... values)时,此方法被执行,直接将进度信息更新到UI组件上。
5.onPostExecute(Result result),当后台操作结束时,此方法将会被调用,计算结果将做为参数传递到此方法中,直接将结果显示到UI组件上。
在使用的时候,有几点需要格外注意:
1.异步任务的实例必须在UI线程中创建。
2.execute(Params... params)方法必须在UI线程中调用。
3.不要手动调用onPreExecute(),doInBackground(Params... params),onProgressUpdate(Progress... values),onPostExecute(Result result)这几个方法。
4.不能在doInBackground(Params... params)中更改UI组件的信息。
5.一个任务实例只能执行一次,如果执行第二次将会抛出异常。