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.
- Problema con GCM. Manifiesto malformado como resultado de mayúsculas en el nombre del paquete
- ¿Hay alguna manera de especificar el requisito de arquitectura del procesador en el manifiesto de Android?
- Android HelloViews Spinner Tutorial R.id y R.array no se pueden resolver
- Android: dispositivo no compatible con la aplicación, ¿por qué?
- ¿Por qué ciertos permisos están ocultos en developer.android.com?
- No se ha encontrado ninguna actividad del Lanzador, el lanzamiento solo sincronizará el paquete de aplicaciones en el dispositivo
- Android Widget: muestra la actividad de configuración antes de que el widget se agregue a la pantalla.
- ¿Cuál es la diferencia entre declarar un filtro intencional en una actividad frente a un receptor?
- Mi aplicación no es compatible con nexus 7
- ¿Cómo especifica la aplicación del proveedor de contenido los permisos que necesitan las aplicaciones de los clientes para acceder a los datos del proveedor?
- Cambiar metadatos de manifiesto de código
- Cómo agregar una actividad de configuración de notificaciones a la configuración del sistema
- android fondo blanco sin gradiente
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(); } }
- Elementos en Fragmento no funcionan después de volver a agregar el mismo fragmento
- OnFocusChange ejemplo de código?