android - una - ejemplos de timer en visual basic
Cómo ejecutar la tarea Async repetidamente después de intervalos de tiempo fijos (4)
Cómo hacer que la tarea Async se ejecute repetidamente después de un intervalo de tiempo como Temporizador ... En realidad, estoy desarrollando una aplicación que descargará automáticamente todos los últimos mensajes de bienvenida no leídos del servidor y para ello tengo que verificar las actualizaciones del servidor después de algunos arreglos intervalos de tiempo ... Sé que se puede hacer fácilmente a través del temporizador, pero quiero usar la tarea asincrónica, que creo que es más eficiente para las aplicaciones de Android.
¿No sería más eficiente crear un servicio y programarlo a través de Alarm Manager?
Puedes simplemente un controlador:
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 le recomendaría que consulte 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 (por lo tanto, guardando algunas ancho de banda y rendimiento :))
//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);
}
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
}