私は Android アプリケーションで作業しており、UI メインスレッドから AsyncTask を呼び出したいと考えています。そのために、スレッドから AsyncTask を呼び出したいと思います。
これは、メインの UI スレッドから呼び出すメソッドです。これは正しく動作しています
CommonAysnk mobjCommonAysnk = new CommonAysnk(this, 1);
mobjCommonAysnk.execute();
CommonAysnk は私の AsyncTask クラスです。アクティビティと整数パラメーターを AsyncTask コンストラクターに渡したいと思います。以下のメソッドに示すように、スレッドからこれを呼び出すにはどうすればよいですか。
Thread t = new Thread() {
public void run() {
try {
CommonAysnk mobjCommonAysnk = new CommonAysnk(this, 1);
mobjCommonAysnk.execute();
} catch (Exception ex) {
}}};
t.start();
スレッドから呼び出そうとしたときに、アクティビティ パラメータを正しく渡すことができません。
これは CommonAysnk クラスです。調べてください
public class CommonAysnk extends AsyncTask<URL, Integer, String> {
private Common mobjCommon = null;
private Activity mobjActivity = null;
private int mcallIntentcond = 0;
private ProgressDialog mProcessDialog = null;
public CommonAysnk(Activity activity, int condition) {
mobjActivity = activity;
mcallIntentcond = condition;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
mProcessDialog.dismiss();
}
@Override
protected void onPreExecute() {
super.onPreExecute();
mobjCommon = new Common();
mProcessDialog = mobjCommon.showProgressDialog(mobjActivity, "",
"Loading...", false);
}
@Override
protected String doInBackground(URL... params) {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
}
switch (mcallIntentcond) {
case 1:
Intent i=new Intent(mobjActivity, Home.class);
mobjActivity.startActivity(i);
mobjActivity.finish();
break;
}
return null;
}
}
どうすればこれをソールにできますか。ありがとう