2017-05-25 2 views
0

mon code simple:Qu'est-ce que appWidgetIds [] pour WidgetProvider? Pourquoi toujours avoir sa valeur 0?

int[] appWidgetIds= AppWidgetManager.getInstance(getApplication()).getAppWidgetIds(new ComponentName(getApplication(), MyWidgetProvider.class)); 

     Toast.makeText(mContext,"ids:size:"+appWidgetIds.length,Toast.LENGTH_SHORT).show(); 
     MyWidgetProvider myWidget = new MyWidgetProvider(); 
     myWidget.onUpdate(this, AppWidgetManager.getInstance(this),appWidgetIds); 

je le lance. mais toujours j'applique appWidgetIds.length = 0; Qu'est-ce que appWidgetIds pour le fournisseur de widget. Je suis confus à ce sujet. Si quelqu'un m'aide. Je suis très utile pour cela. Merci.

Répondre

0

int[] appWidgetIds est un tableau avec des identifiants de widget d'application pour les référencer et les mettre à jour, par ex. à l'intérieur onUpdate méthode de AppWidgetProvider. vous obtenez length=0 probablement parce que votre application n'a pas un widget ajouté au lanceur

la création de nouvelles AppWidgetProvider comme vous le faites

MyWidgetProvider myWidget = new MyWidgetProvider(); 

est inproper, vous devez le déclarer dans le manifeste avec

<receiver android:name="MyWidgetProvider"> 
    <!--filters here --> 
</receiver> 

here you have some DOC comment faire avec les widgets