onPostExecute() is invoked on the UI thread so you can use this method to start an Activity. It's pretty much what it's for.
On Fri, Mar 5, 2010 at 6:29 AM, John Wesonga <[email protected]> wrote: > I have a simple app and I'm using the AsyncTask to test out a > background process, for clearness purposes I've opted to put my > AsyncTask in a separate class rather than in an inner class, which > where my problems begin, this is my AsyncTask > > package org.tutorial.test101.tasks; > > import android.app.ProgressDialog; > import android.content.Context; > import android.os.AsyncTask; > import android.util.Log; > > public class LoginTask extends AsyncTask<String, String, String> { > > Context ctx; > ProgressDialog pDialog; > > > public LoginTask(Context context){ > super(); > this.ctx=context; > } > �...@override > protected String doInBackground(String... params) { > Log.i("LOGGER", "Starting..."); > try{ > Thread.sleep(8000); > }catch(InterruptedException e){ > > } > return null; > } > > �...@override > protected void onPostExecute(String result) { > > Log.i("LOGGER", "Done..."); > pDialog.dismiss(); > // > super.onPostExecute(result); > } > > �...@override > protected void onPreExecute() { > pDialog=new ProgressDialog(ctx); > pDialog.setTitle("Login"); > pDialog.setMessage("doing stuff.."); > pDialog.show(); > } > > > } > > What I'd like is that once the task is complete, I do something in the > UI thread may be start another activity or even display a Toast saying > activity complete. I know I can't start a new Activity in the > onPostExecute() so I need to start it in the UI thread any idea how I > can do this? This is my Activity that starts the AsyncTask > > package org.tutorial.test101.activities; > > import org.tutorial.test101.tasks.LoginTask; > > import android.app.Activity; > import android.app.Dialog; > import android.content.Context; > import android.os.AsyncTask; > import android.os.Bundle; > import android.util.Log; > import android.view.View; > import android.view.View.OnClickListener; > import android.widget.Button; > > public class Test101 extends Activity{ > private Button btnLogin; > private LoginTask mLoginTask; > private Context context=this; > /** Called when the activity is first created. */ > �...@override > public void onCreate(Bundle savedInstanceState) { > super.onCreate(savedInstanceState); > setContentView(R.layout.main); > btnLogin=(Button)findViewById(R.id.btnLogin); > btnLogin.setOnClickListener(new OnClickListener(){ > > public void onClick(View v) { > if(mLoginTask==null){ > mLoginTask=new LoginTask(context); > mLoginTask.execute(null); > } > > } > > }); > } > > > > > } > > -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en > -- Romain Guy Android framework engineer [email protected] Note: please don't send private questions to me, as I don't have time to provide private support. All such questions should be posted on public forums, where I and others can see and answer them -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

