He estado siguiendo varios tutoriales de widgets como this one y this oneOnUpdate nunca llamó - Widget Android
He intentado adaptar su código para mis propósitos, y he intentado recta de copiar y pegar. Parece que no importa lo que haga, mi widget NUNCA se actualiza. Cuando se coloca en la pantalla de inicio, el texto permanece como el Texto estático con el que se creó. Todo lo que necesito para esta aplicación es actualizar 4 TextViews que se incluirán en el diseño.
El código siguiente se copia principalmente de uno de los tutoriales. He intentado depurar el método onUpdate, sin embargo, el punto de ruptura nunca parece ser golpeado.
Cualquier ayuda sería GRANMENTE apreciada.
EDITAR: Volví a una versión mucho más simple de este widget que estaba intentando antes en mis esfuerzos y reemplacé el código a continuación con el código para el widget más simple. Hice los cambios sugeridos por CommonsWare a mi manifiesto. Lamentablemente, el problema persiste.
Mi principal archivo .java se ve así:
public class NetStatWidget extends AppWidgetProvider
{
public void onUpdate(Context context, AppWidgetManager manager, int[] appWidgetIds)
{
ComponentName thisWidget = new ComponentName(context, NetStatWidget.class);
int[] widgetId = manager.getAppWidgetIds(thisWidget);
RemoteViews remoteView = new RemoteViews(context.getPackageName(), R.layout.appwidget);
remoteView.setTextViewText(R.id.textView0, "Hello");
manager.updateAppWidget(widgetId, remoteView);
}
}
Mi Manifiesto:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="net.stat"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="10" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<receiver android:name="NetStatWidget" >
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/providerinfo" />
</receiver>
</application>
</manifest>
Y mi Proveedor de Información Widget:
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider
xmlns:android="http://schemas.android.com/apk/res/android"
android:initialLayout="@layout/main"
android:minWidth="146dip"
android:minHeight="72dip"
android:updatePeriodMillis="10000">
Cambié mi manifiesto según su sugerencia y sigo teniendo el mismo problema ...Volví a un widget más simple que estaba intentando al principio de mis esfuerzos, hice el mismo cambio y está teniendo el mismo problema. Edité el código de arriba para reflejar el código más simple. ¿Ves el mismo problema? – Jodron
@Jodron: No, lo que tienes allí debería funcionar en Android 3.0 y versiones posteriores. Android 3.1 y superior, necesita una actividad para su widget de aplicación: su widget de aplicación no recibirá transmisiones hasta que el usuario ejecute la actividad. Este directorio contiene otros dos ejemplos de widgets de aplicaciones, ambos funcionan: https://github.com/commonsguy/cw-advandroid/tree/master/AppWidget – CommonsWare
Eso es simplemente extraño. Lo estoy ejecutando en 2.3, y todavía no actualizará el texto. ¿Me equivoco al pensar que tan pronto como se coloque el widget, "textView0" debería decir "Hola"? Gracias por los ejemplos, revisaré esos y veré si no puedo resolverlo. Creo que podría haberlo superado y debería convertirlo en una aplicación normal. – Jodron