¿Por qué no se actualiza mi widget de aplicación en API 3 o 4?
Estoy trabajando en un widget de Android y funciona muy bien en API de nivel 5 o superior. No es compatible en absoluto en API Nivel 1 o 2. Debe funcionar absolutamente bien en 3 y 4, pero por alguna razón el widget no se actualiza.
El método onUpdate se llama y se ejecuta sin errores; Sin embargo, en 3 y 4 no cambia el texto del widget. Estoy bastante perdido. ¿Alguna idea?
- ¿Cuáles son las limitaciones de Python en Android?
- Flurry SDK no se iniciará en el inicio de sesión
- ¿Es posible instalar el JDK en un dispositivo android?
- Error de PagerSlidingTabStrip cuando está abierto
- Android en la aplicación de facturación de la clave pública en el repositorio público
@Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget); DataAccess helper = new DataAccess(context); String text = helper.getCurrentText(); helper.close(); if (text != null) views.setTextViewText(R.id.widget_text, text); Intent intent = new Intent(context, WidgetDetailsActivity.class); PendingIntent pending = PendingIntent.getActivity(context, 0, intent, 0); views.setOnClickPendingIntent(R.id.widget, pending); appWidgetManager.updateAppWidget(appWidgetIds, views); }
- ¿Deberían los archivos de Kotlin ser puestos en un directorio de fuentes separado en Android?
- ¿Cómo hacer que un contador agregue sólo una vez al día (android)?
- Final int parámetro utilizado en Runnable anónimo
- Cambiar instrucción con cadena como argumento en Android
- Utilizar un adaptador de lista personalizado con AutoCompleteTextView y mantener la funcionalidad del auto completo trabajando igual
- Recortar una imagen en forma irregular
- ¿Es una práctica aceptable en Java anidar las sentencias try / catch?
- error com.android.volley.NoConnection aleatorio, java.io.InterruptedIOException, statuscode = 0
Prueba esto:
Al final de su método de actualización necesita llamar al super.
@Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget); DataAccess helper = new DataAccess(context); String text = helper.getCurrentText(); helper.close(); if (text != null) views.setTextViewText(R.id.widget_text, text); Intent intent = new Intent(context, WidgetDetailsActivity.class); PendingIntent pending = PendingIntent.getActivity(context, 0, intent, 0); views.setOnClickPendingIntent(R.id.widget, pending); appWidgetManager.updateAppWidget(appWidgetIds, views); super.onUpdate(context, appWidgetManager, appWidgetIds); }
Necesitas iniciar el servicio en el método de actualización y poner todo tu código en servicio también, aquí doy enReceive y service demo context.startService(new Intent(context, UpdateService.class));
public static class UpdateService extends Service { @Override public void onStart(Intent intent, int startId) { // Build the widget update for today RemoteViews updateViews = buildUpdate(this); // Push update for this widget to the home screen ComponentName thisWidget = new ComponentName(this, Widget.class); AppWidgetManager manager = AppWidgetManager.getInstance(this); manager.updateAppWidget(thisWidget, updateViews); } @Override public IBinder onBind(Intent intent) { return null; } } @Override public void onReceive(Context context, Intent intent) { final RemoteViews remoteViews = buildUpdate(context); ComponentName cn = new ComponentName(context, Widget.class); AppWidgetManager.getInstance(context).updateAppWidget(cn, remoteViews); super.onReceive(context, intent); }
Donde buildUpdate es un método para que tu widget actualice el código
- Disposición de derecha a izquierda en android
- ¿Puede mi aplicación integrarse con la galería predeterminada de Android? ¿Como Picasa?