Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cómo ejecutar la tarea Async repetidamente después de intervalos de tiempo fijos

Cómo hacer que la tarea asíncrona se ejecute repetidamente después de un cierto intervalo de tiempo apenas como temporizador … Realmente estoy desarrollando una aplicación que descargue automáticamente el último saludo no leído del servidor y para ese propósito tengo que comprobar para saber si hay actualizaciones del servidor después de algunas fijas Intervalos de tiempo …. Sé que se puede hacer fácilmente a través de temporizador, pero quiero utilizar la tarea asincrónica que creo que es más eficiente para las aplicaciones de Android.

  • ¿Cómo puede pasar varios parámetros primitivos a AsyncTask?
  • Mostrar SearchWidget en ActionBar si el usuario presiona el botón de búsqueda del dispositivo
  • Android 2.1 vs 2.2
  • SMS_RECEIVED no funciona en Ice Cream Sandwich?
  • Dos TextViews lado a lado, sólo uno para ellipsizar?
  • Integración con Android y Paypal API
  • Cómo detectar los límites de una página de pasaporte con OpenCV?
  • Depuración en caliente con Android
  • Android studio 0.5.9: 2 molestas advertencias de Gradle
  • ExpandableListView y el NavigationDrawer
  • Uso de SimpleXML con Android y Gradle
  • IOS 7 Multipeer Connectivity es compatible con Android Wi-Fi Direct?
  • 4 Solutions collect form web for “Cómo ejecutar la tarea Async repetidamente después de intervalos de tiempo fijos”

    public void callAsynchronousTask() { final Handler handler = new Handler(); Timer timer = new Timer(); TimerTask doAsynchronousTask = new TimerTask() { @Override public void run() { handler.post(new Runnable() { public void run() { try { PerformBackgroundTask performBackgroundTask = new PerformBackgroundTask(); // PerformBackgroundTask this class is the class that extends AsynchTask performBackgroundTask.execute(); } catch (Exception e) { // TODO Auto-generated catch block } } }); } }; timer.schedule(doAsynchronousTask, 0, 50000); //execute in every 50000 ms } 
      //Every 10000 ms private void doSomethingRepeatedly() { Timer timer = new Timer(); timer.scheduleAtFixedRate( new TimerTask() { public void run() { try{ new SendToServer().execute(); } catch (Exception e) { // TODO: handle exception } } }, 0, 10000); } 

    Sólo puede manejar:

     private int m_interval = 5000; // 5 seconds by default, can be changed later private Handle m_handler; @Override protected void onCreate(Bundle bundle) { ... m_handler = new Handler(); } Runnable m_statusChecker = new Runnable() { @Override public void run() { updateStatus(); //this function can change value of m_interval. m_handler.postDelayed(m_statusChecker, m_interval); } } void startRepeatingTask() { m_statusChecker.run(); } void stopRepeatingTask() { m_handler.removeCallback(m_statusChecker); } 

    Pero te recomiendo que revises este marco: http://code.google.com/intl/de-DE/android/c2dm/ Es un enfoque diferente: el servidor notificará al teléfono cuando algo esté listo (así, ahorrará algo Ancho de banda y rendimiento :))

    ¿No sería más eficiente crear un servicio y programarlo a través de Alarm Manager?

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.