SDK de Android: ejecuta funciones en segundo plano

Tengo una función que puede variar en el tiempo que tarda en terminar. Me gustaría mostrar un diálogo de progreso mientras esta función está funcionando.

Soy consciente de que puede utilizar un "hilo" para lograr esto. ¿Puede alguien señalarme en la dirección correcta para hacer esto?

EDIT: Aquí está el código que estoy usando:

private class LongOperation extends AsyncTask<String, Void, String> { ProgressDialog dialog; public Context context; @Override protected String doInBackground(String... params) { if (!dialog.isShowing()) dialog.show(); // Just in case return null; } /* (non-Javadoc) * @see android.os.AsyncTask#onPostExecute(java.lang.Object) */ @Override protected void onPostExecute(String result) { dialog.dismiss(); } /* (non-Javadoc) * @see android.os.AsyncTask#onPreExecute() */ @Override protected void onPreExecute() { dialog = ProgressDialog.show(context, "Working", "Getting amenity information", true); } /* (non-Javadoc) * @see android.os.AsyncTask#onProgressUpdate(Progress[]) */ @Override protected void onProgressUpdate(Void... values) { // Things to be done while execution of long running operation is in progress. For example updating ProgessDialog } } 

esta es la clase Asnyc. El usuario selecciona una opción del menú, y ésta se ejecuta a continuación:

 longOperation.execute(""); // Start Async Task GetAmenities(Trails.UserLocation); // Long function operation 

Debe utilizar AsyncTask para este propósito. Consulte el sitio web de desarrolladores de Android y cómo utilizar AsyncTask .

Algunos ejemplos de código:

 private class LongRunningTask extends AsyncTask<Void, Boolean, Boolean> { private ProgressDialog progress; protected void onPreExecute() { progress = ProgressDialog.show(yourContext, "Title", "Text"); } @Override protected Boolean doInBackground(Void... params) { return true; } protected void onPostExecute(Boolean result) { if(result) { progress.dismiss(); } } } 

Echa un vistazo a esta página:

Referencia de barra de progreso

Saludos

 public void onClick(View v) { new Thread(new Runnable() { public void run() { Bitmap b = loadImageFromNetwork(); } }).start(); } 

tomado de aquí http://developer.android.com/resources/articles/painless-threading.html

  • No se encontró el comando de Android incluso PATH
  • android.net.SntpClient falta en Android SDK
  • ¿Alguien tiene impresiones, sugerencias, tutoriales de desarrollo para dispositivos Android de Google?
  • Introducción al SDK de Android de WeChat
  • utilizando onBackPressed () con compatibilidad con versiones anteriores
  • ¿Por qué no puedo instalar Google Cloud Messaging para Android Library?
  • La instalación de Android Studio SDK falló en Mac OS X
  • Nuevo Firebase 9 Android sdk da "respuesta Idp no válida" después de algún tiempo
  • Dispositivo no autorizado: no se permite el pago desde este dispositivo
  • El gestor de SDK no encuentra java
  • ¿Cómo se establece la variable de entorno ANDROID_SDK_HOME?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.