アクティビティの基本クラスと、基本クラスを拡張するサブクラスがあります。スーパークラスには、何らかのアクションを実行する非同期タスクがあります。IllegalInitializerError をスローするため、UI スレッドで実行してこれを呼び出します。
superclass.this.runOnUiThread(new Runnable() {
public void run() {
String p="";
try {
p=new asynctasker().execute().get();
}
}
}
私の非同期タスクでは:
protected void onPreExecute()
{
// TODO Auto-generated method stub
super.onPreExecute();
//showDialog();
Log.d("Now","Inside right now");
dialog = ProgressDialog.show(class_create_event.this, "Loading1", "Please Wait");
}
ただし、ダイアログはリクエストのほぼ最後に表示されます。I am in part は正しく印刷されます。何かが私のUIスレッドをブロックしていることを知っています。しかし、UI スレッドから非同期タスクを呼び出さないと、不正な初期化エラーがスローされます。抜け道はありますか?