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


Android ejecuta una tarea periódicamente

Quiero ejecutar un método periódicamente en una actividad de Android que actualiza un cierto campo después de x segundos. Sé que se puede hacer en timerTask, pero ¿cuál es la mejor manera de hacerlo? Las muestras de código podrían ser útiles.

  • Prevenir CollapsingToolbarLayout colapsar si no es necesario
  • Cordova: SDK de Android no encontrado. Asegúrese de que está instalado. Si no está en la ubicación predeterminada, establezca la variable de entorno ANDROID_HOME
  • Travis CI Android Tests: no hay dispositivos conectados
  • Actividad ha filtrado ventana com.android.internal.policy.impl.PhoneWindow$DecorView@44f72ff0 que fue agregado originalmente aquí
  • Post datos UTF-8 codificados en el servidor pierde ciertos caracteres
  • Android Studio no puede resolver el símbolo 'TabLayout'
  • Establecer altura y ancho de FrameLayout basado en mapa de bits
  • ¿Cómo saber si las notificaciones están habilitadas o no para una aplicación en android?
  • Cómo abrir un archivo en Android mediante un intento
  • ¿Cómo puedo aprovechar el botón "Borrar caché" de Android
  • Java.lang.SecurityException: Requiere permiso de VIBRATE en Jelly Bean 4.2
  • ¿Llamar a un método público en la clase Activity de otra clase?
  • 3 Solutions collect form web for “Android ejecuta una tarea periódicamente”

    Debe utilizar Handler y su función postDelayed . Puede encontrar un ejemplo aquí: ¿ Repite una tarea con un retardo de tiempo?

    Puedes usar las siguientes clases de android:

    1.Handler

     Handler handler=new Handler(); handler.postDelayed(new Runnable() { @Override public void run() { //your code } },20000); 

    2.AlarmManager

     AlarmManager alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE); // Set the alarm to start at approximately 2:00 pm Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(System.currentTimeMillis()); Intent intent = new Intent(HomeActivity.this, Yourservice.class); alarmIntent = PendingIntent.getService(HomeActivity.this, 0, intent, 0); alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 600*1000, alarmIntent); 

    También puede hacerlo por CountDownTimer

     CountDownTimer countDownTimer; public void usingCountDownTimer() { countDownTimer = new CountDownTimer(Long.MAX_VALUE, 10000) { // This is called after every 10 sec interval. public void onTick(long millisUntilFinished) { setUi("Using count down timer"); } public void onFinish() { start(); } }.start(); } 

    Y onPause ()

     @Override protected void onPause() { super.onPause(); try { countDownTimer.cancel(); } catch (Exception e) { e.printStackTrace(); } } 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.