2010-07-14 11 views
9

Estoy trabajando con el emulador usando el depurador y me he dado cuenta de que no se está llamando a onUpdate. Cuando agrego el widget a la pantalla de inicio del emulador veo que mi punto de interrupción se ve afectado en el método onReceive. El método onReceive obtiene el intento android.appwidget.action.APPWIDGET_UPDATE. Sin embargo, nunca se llama a la función onUpdate. Creo que está definido correctamente.onUpdate no se ha llamado en el widget, aunque veo el intento android.appwidget.action.APPWIDGET_UPDATE en 0rece

@Override 
     public void onUpdate(Context context 
,AppWidgetManager appWidgetManager,int[] appWidgetIds) 
     { 
    // code that sets up remove view and updates appWidgetManager 


    } 

Respuesta

0

¿Tiene una configuración de configuración de actividad para su artilugio? Porque si lo hace, entonces no se llama a onUpdate y es tarea de la actividad de configuración actualizar manualmente el widget por primera vez. Después de eso, onUpdate debe llamarse como se define en su configuración updatePeriod.

+0

Sí, lo leí también, pero en este momento no estoy usando una actividad de configuración y no tengo una especificada – JonF

0

¿Lo tiene en el Manifiesto de Android?

 <intent-filter> 
    <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> 
    </intent-filter> 
16

Llame al método super clase en OnReceive()

@Override 
public void onReceive(Context context, Intent intent) 
{ 
    // Chain up to the super class so the onEnabled, etc callbacks get dispatched 
    super.onReceive(context, intent); 
    // Handle a different Intent 
    Log.d(TAG, "onReceive()" + intent.getAction()); 

} 

Si reemplaza OnReceive() en su AppWidgetProvider subclase, a continuación, onEnabled del proveedor, onUpdate, etc devoluciones de llamada no se activan a menos que llamar la superclase.

Cuestiones relacionadas