Iniciando AsyncTask recursivamente después de un intervalo de 5 minutos

Quiero crear una instancia de una clase (que extiende Asynctask ) y llamar su método execute() cada 5 minutos. Para eso intenté llamar Thread.sleep(5*60*1000)) en el método onPostExecute() y luego crear una nueva instancia de la clase. El código es el siguiente.

 public class MyAsyncTask extends AsyncTask<String, Void, String> { protected String doInBackground(String... arg0) { //whatever I want to do } protected void onPostExecute(String result) { Thread.sleep(5*60*1000); new MyAsyncTask().execute("my String"); } } 

Pero el uso de este código bloquea la interfaz de usuario durante 5 minutos. He leído en alguna parte que el código en onPostExecute() se ejecuta en el subproceso de la interfaz de usuario. Esto explica por qué la interfaz de usuario está bloqueada. Pero, ¿cómo puedo crear una nueva instancia de AsyncTask sin bloquear la interfaz de usuario?

Alguna sugerencia ? Gracias.

Utilice este código en el onPostExecute.

 new Handler().postDelayed(new Runnable() { @Override public void run() { new MyAsyncTask().execute("my String"); } }, 5*60*1000); 

Utilice este código

 Timer timer = new Timer(); timer.schedule( new TimerTask() { public void run() { new MyAsyncTask().execute("my String"); } }, 0, 5*60*1000); 

Hay muchas maneras de repetir las tareas, pero después de una gran cantidad de experimentación he encontrado que ejecutar una tarea regular sin la actividad realmente en ejecución debe ser a través de un AlarmManager. Todas las demás técnicas son para aplicaciones que necesitan una interfaz de usuario en ejecución. Handler funciona bien @ respuesta Sagar es bueno.

Consulte el ejemplo del administrador de alarmas , que desea ejecutar como fondo / sin interfaz de usuario.

  • Actualizar el subproceso de UI de AsyncTask en clase pública
  • ¿Cómo utilizar AsyncTask para mostrar un ProgressDialog mientras realiza un trabajo de fondo en Android?
  • Cómo implementar un proceso de token de renovación con JWT para aplicaciones de Android
  • Cómo hacer una pantalla de bien codificada de bienvenida
  • Hilos y uso de tareas Asynctask para httppost
  • Fatal Spin-On-Suspend / Stuck en ThreadID
  • Fragmentos de Android. Retener un AsyncTask durante la rotación de la pantalla o el cambio de configuración
  • Modificar vistas en AsyncTask doInBackground () no (siempre) arrojar excepción
  • Cómo utilizar Toast en ASyncTask / onPostExecute con cadena de recursos?
  • Error de Android: java.net.SocketException: Socket cerrado
  • Android: RunOnUiThread vs AsyncTask
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.