我一直在研究一个应用程序,并且设法使AsyncTask
在内部类中正常工作。外部类中的Android AsyncTask
现在,我正在重构代码,以便AsyncTask
处于独立的类中,但我想知道,如何在成功完成任务后终止ProgressDialog
并启动新的活动?我试过在onPostExecute(..)
方法中开始一个新的活动,但我知道这是行不通的。
通过我的UI线程活动中的构造函数的AsyncTask的说法似乎并没有工作:
//In UI Thread I had
public class Test101 extends Activity {
private Button btnLogin;
private LoginTask mLoginTask;
private Context context=this;
private Test101 mTest101;
mLoginTask=new LoginTask(context,mTest101);
mLoginTask.execute(null);
// In the AsyncTask I had
Activity mParentActivity;
public LoginTask(Context context,Activity act){
this.ctx=context;
this.mParentActivity=act;
}
onPostExecute(..){
mParentActivity.callSomeMethod();
}
...
}
我一直得到一个NullPointerException
,也许我失去了一些东西,但是这没”为我工作。
取得了良好的量的进步,这是我到目前为止,在onPostExecute(字符串结果)方法我驳回progressDialog,现在我想传递的AsyncTask的结果返回给活动中UI线程。还没有弄清楚那个部分: @Override protected void onPostExecute(String result){ pDialog.dismiss(); //将AsyncTask的结果传递给UI线程中的Activity? } – jwesonga 2010-03-04 17:36:33