我在主要活动中使用子类来执行异步任务。我计划之后将它移动到一个单独的文件中,我只是更喜欢这样做以确认它正在工作。HTTPRequest
由于等待时间可能很长,我正在尝试使用进度对话框。我什么也没做,doInBackground()
因为我读过你不能从那里访问 UI 层。最终发生的事情是我显示我的进度对话框onPreExecute()
并在onPostExecute()
. 我在上面分别调用每个任务,这可能是我问题的 99%,但我需要能够将我的活动传递给任务,以便它们正常运行。
我已经把很多步骤分解成小块。我得到一个空指针异常,这让我相信我的问题来自不使用 execute() 但我似乎无法弄清楚它是如何工作的。
new CodeRetrievalItem().onPreExecute(MyActivity.this);
new CodeRetrievalItem().onPostExecute(MyActivity.this);
class CodeRetrievalItem extends AsyncTask<Void, Void, Void>{
ProgressDialog dialog;
protected void onPreExecute(Activity actpass){
dialog = new ProgressDialog(actpass);
dialog.setMessage("Loading");
dialog.setIndeterminate(false);
dialog.setCancelable(false);
dialog.show();
}
@Override
protected Void doInBackground(Void... arg0) {
// TODO Auto-generated method stub
return null;
}
protected void onPostExecute(Activity actpass){
// Execute HTTP Request
try{
dialog.dismiss();
}
catch(Exception e){
Toast.makeText(actpass, "IOE response " + e.toString(), Toast.LENGTH_LONG).show();
}
}
}