方法onPostExecute具有您从doInBackground方法返回的JSONArray作为参数.
onPostExecute在主(调用方)活动的线程上运行,因此,除了关闭该方法中的对话框之外,您还可以进一步处理结果数组,并将其安全地传递给其他方法,等等:
@Override
protected void onPostExecute(JSONArray result)
{
super.onPostExecute(result);
final Message msg = new Message();
msg.obj = result;
if (youWantToUseHandler)
handler.dispatchMessage(msg);
else
writeJSONArray(result);
}
处理程序:
final Handler handler = new Handler()
{
public void handleMessage(Message msg)
{
final JSONArray result = (JSONArray)msg.obj;
writeJSONArray(result);
};
};
其他方法:
private void writeJSONArray(final JSONArray result)
{
for (int i = 0; i < result.length(); i++)
{
try
{
Log.d("SAMPLE", result.get(i).toString());
}
catch (JSONException e)
{
Log.e("SAMPLE", "error getting result " + i, e);
}
}
}
因为onPostExecute“在doInBackground之后在UI线程上运行.指定的结果是doInBackground返回的值;如果任务被取消或发生了异常,则返回null.” ?API文件
您可以调用在类中声明的任何方法,并将此数组作为参数传递给它.