我不确定此问题是否曾在此问过。使用myTask.execute();
执行异步任务时,从一开始就运行什么方法。我正在学习本教程:http://mobiforge.com/developing/story/consuming-json-services-android-apps用于使用JSON服务,作者正在使用new ReadWeatherJSONFeedTask()
.execute()
以及一些参数。我很困惑哪个方法首先运行以及如何传递参数以获得结果。
任何人都可以帮助我。
感谢!
答案 0 :(得分:4)
asyncTask需要的参数是在定义扩展asyncTask的类时声明的。方法的执行顺序是:
答案 1 :(得分:0)
根据Android API参考AsyncTask,
执行异步任务时,任务将经历4个步骤:
- onPreExecute(),在执行任务之前在UI线程上调用。例如,此步骤通常用于设置任务 通过在用户界面中显示进度条。
- doInBackground(Params ...),在onPreExecute()完成执行后立即在后台线程上调用。使用此步骤 执行可能需要很长时间的后台计算。该 异步任务的参数传递给此步骤。该 计算结果必须由此步骤返回并且将是 回到最后一步。这一步也可以使用 publishProgress(Progress ...)发布一个或多个进度单元。 这些值发布在UI线程中 onProgressUpdate(Progress ...)步骤。
- onProgressUpdate(Progress ...),在调用publishProgress(Progress ...)后在UI线程上调用。执行的时间是 未定义。此方法用于显示任何形式的进度 后台计算仍在执行时的用户界面。 例如,它可用于为进度条设置动画或显示登录 文本字段。
- onPostExecute(Result),在后台计算完成后在UI线程上调用。背景的结果 计算作为参数传递给此步骤。
醇>
这解释了Ui Thread上的onPreExecute()
在最开始执行。
此Guide可能会帮助您在这方面提供更多帮助。