2010-07-14 15 views
9

üzerinde android.appwidget.action.APPWIDGET_UPDATE niyetini görsem bile, hata ayıklayıcıyı kullanarak öykünücü ile çalışıyorum ve onUpdate'in çağrılmadığını fark ettim. Widget'ı emülatör ana ekranına eklediğimde, kırılma noktasının onReceive yönteminde vurulduğunu görüyorum. OnReceive yöntemi android.appwidget.action.APPWIDGET_UPDATE amacını karşılar. Ancak, onUpdate işlevi asla çağrılmaz. Doğru şekilde tanımlandığına inanıyorum.onUpdate onUpdat içinde çağrılmayan, her ne kadar

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


    } 

cevap

0

Widget'ınız için bir yapılandırma etkinliği ayarlarınız var mı? Çünkü, eğer yaparsanız, onUpdate çağrılmaz ve widget'ı ilk kez elle güncellemek için yapılandırma etkinliğinin işi budur. Bundan sonra onUpdate, updatePeriod yapılandırmanızda tanımlanan şekilde çağrılmalıdır.

+0

Evet Bunu da okudum, ancak bu durumda bir yapılandırma etkinliğini kullanmıyorum ve bir tane belirtmedim – JonF

0

Bunu Android Manifest'te var mı? Eğer subclassed AppWidgetProvider içinde OnReceive(), sonra sağlayıcının onEnabled, OnUpdate, geçersiz Eğer çağrı sürece

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

Çağrı OnReceive süper sınıf yöntemi()

@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()); 

} 

vb geri aramaları tetiklenmezler üst sınıf.