メインアクティビティ内でサブクラスを使用して asynctask を実行しています。後で別のファイルに移動する予定です。動作していることを確認するために、この方法を好むだけです。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();
}
}
}