Search code examples
androidwidgetandroid-widgetappwidgetprovider

What is appWidgetIds[] for WidgetProvider? Why always get it's value 0?


my simple code:

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

I run it. but always i get appWidgetIds.length=0; What is appWidgetIds for widget Provider. I am confused about this. If anybody help me. I am very helpful for this. Thanks.


Solution

  • int[] appWidgetIds is an array with app widget ids for referencing and updating them, e.g. inside onUpdate method of AppWidgetProvider. you are getting length=0 probably because your app doesn't have any widget added to launcher

    creating new AppWidgetProvider like you do

    MyWidgetProvider myWidget = new MyWidgetProvider();
    

    is inproper, you should declare it in manifest with

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

    here you have some DOC how to deal with widgets