widgets tutorial tipos studio sgoliver form directo crear ajustes acceso android widget

tutorial - ¿Cuál es la forma correcta de hacer un widget que cambia el contenido cada 6-8 segundos, Android



widget android studio tutorial (2)

El ejemplo más cercano de lo que quiero lograr es el widget "Engadget". Actualiza sus datos de Internet cada 5-10 minutos y "se desplaza" a las historias cada 5-7 segundos. Me imagino que establece el intervalo de 5-10 minutos para que el widget''s provider llame a onUpdate sin las limitaciones inbuild, algo así ...

AlarmManager alarms = (AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE); alarms.setRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime(), updateRateSeconds * 1000, newPending);

Entonces, el problema real ... actualizar el contenido de los widgets sin llamar aUpdate.

Aquí imagino que dentro del proveedor de widgets existe un temporizador o Runnable que cada vez que se llama se reprograma con algo así

public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { ... mHandler.removeCallbacks(mUpdateTimeTask); mHandler.postDelayed(mUpdateTimeTask, 1000); }

.

private Runnable mUpdateTimeTask = new Runnable() { public void run() { final long start = mStartTime; long millis = SystemClock.uptimeMillis() - start; int seconds = (int) (millis / 1000); int minutes = seconds / 60; seconds = seconds % 60; ... mHandler.postAtTime(this,start + (((minutes * 60) + seconds + 1) * 1000)); }

Luego, en el proveedor de widgets dentro de onDeleted y onDisabled

elimino los botones mHandler.removeCallbacks(mUpdateTimeTask);

¿Hay algo malo con ese esquema? ¿ AlarmManager hacer un servicio para actualizar el widget desde allí y mantenerlo vivo sin configurar un AlarmManager para la configuración del widget? Por algún motivo, recibo llamadas dobles en onUpdate y el ejecutable se ejecuta después de eliminar el widget.


Echa un vistazo a ViewFlipper . Puede usarlo para actualizar los datos una vez para un conjunto de elementos y luego establecer con qué frecuencia ciclo.


Cualquier cosa que se ejecute continuamente (IE, reproductor de mp3 o radio) o que requiera algún tipo de sondeo (alarma, widget de visualización SO, error meteorológico) se debe escribir como un servicio. Sé que esto es antiguo, pero revisen estos videos para obtener más información sobre las mejores prácticas
http://developer.android.com/videos/index.html#v=M1ZBjlCRfz0