title: appWidget not showing in launcher widget list in lollipop devices only
body: <p>I have an app for android which I already made an appwidget for it before lollipop , for some reasons the widget doesn't appear in lollipop. However, it is showing up in the pre-lollipop devices.</p>
  
  <p>Here is my code:</p>
  
  <p>AndroidManifest.xml</p>
  
  <pre><code>&lt;receiver android:name=".widgets.NewsWidgetProvider"
          android:icon="@drawable/ic_launcher"
          android:label="@string/app_name" &gt;&gt;
          &lt;intent-filter &gt;
              &lt;action
                  android:name="android.appwidget.action.APPWIDGET_UPDATE" /&gt;
          &lt;/intent-filter&gt;
  
          &lt;meta-data
              android:name="android.appwidget.provider"
              android:resource="@xml/news_info" /&gt;
  &lt;/receiver&gt;
  </code></pre>
  
  <p>news_info.xml</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;appwidget-provider
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:initialLayout="@layout/widget_news"
  android:minHeight="72dp"
  android:minWidth="300dp"
  android:updatePeriodMillis="6000000" &gt;
  </code></pre>
  
  <p> </p>
  
  <p>NewsWidgetProvider.java</p>
  
  <pre><code>public class NewsWidgetProvider extends AppWidgetProvider {
  private static final String NEXT_NEWS = "NEXT_NEWS";
  private static final String PREVIOUS_NEWS = "PREVIOUS_NEWS";
  private static final String GO_TO_NEWS_ACTIVITY = "GO_TO_NEWS_ACTIVITY";
  private final String NEWS_LIST_KEY = "newsList";
  NewsItem[] news;
  int currentNews=0;
  Bitmap imageBitmap;
  private final String CURRENT_NEWS_KEY = "currentNews";
  
  @Override
  public void onUpdate(final Context context, AppWidgetManager appWidgetManager, final int[] appWidgetIds) {
  
      startService(context);
  
      loadItemFromSharedPreference(context);
  
      for (int widgetId : appWidgetIds) {
          setUpView(context, appWidgetManager, appWidgetIds, widgetId);
      }
  
  }
  
  
  @Override
  public void onReceive(Context context, Intent intent) {
      super.onReceive(context, intent);
      loadItemFromSharedPreference(context);
  
      if (news != null) {
          if (GO_TO_NEWS_ACTIVITY.equals(intent.getAction())){
          openNewsActivity(context);
      }
  
          else if (NEXT_NEWS.equals(intent.getAction())) {
              if (currentNews == news.length - 1) {
                  Toast.makeText(context, "reached last news", Toast.LENGTH_SHORT).show();
              }
          else if (news.length - 1 &gt; currentNews) {
              currentNews++;
              SharedPreferencesManager.putInteger(context, CURRENT_NEWS_KEY, currentNews);
              loadItemFromSharedPreference(context);
              setTheCurrentView(context);
          }
          }
      else if (PREVIOUS_NEWS.equals(intent.getAction())) {
                  if (currentNews == 0) {
                      Toast.makeText(context, context.getString(R.string.last_item), Toast.LENGTH_SHORT).show();
                  }
                  else if (currentNews &gt; 0 &amp;&amp; news != null) {
                      currentNews--;
                      SharedPreferencesManager.putInteger(context, CURRENT_NEWS_KEY, currentNews);
                      loadItemFromSharedPreference(context);
                      setTheCurrentView(context);
                  }
              }
  
      }
  }
  
  private void setUpView(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds, int widgetId) {
      final RemoteViews remoteViews = new RemoteViews(context.getPackageName(),
              R.layout.widget_news);
  
      remoteViews.setTextViewText(R.id.title, news==null?context.getString(R.string.wait_msg):news[currentNews].title);
  
      remoteViews.setTextViewText(R.id.brief,news==null?"":news[currentNews].brief);
      setPendingIntents(context, appWidgetIds, remoteViews);
      if (news!=null) {
          if (imageBitmap!=null) {
              AQuery aq = new AQuery(context);
              remoteViews.setImageViewBitmap(R.id.image, aq.getCachedImage(news[currentNews].imageUrl, 100));
          }
          else {
              remoteViews.setImageViewResource(R.id.image,R.drawable.ic_launcher);
          }
      }
      else {
          remoteViews.setImageViewResource(R.id.image,R.drawable.ic_launcher);
      }
      appWidgetManager.updateAppWidget(widgetId, remoteViews);
  }
  
  
  private void setTheCurrentView(Context context) {
      RemoteViews remoteViews = new RemoteViews(context.getPackageName(),
              R.layout.widget_news);
      remoteViews.setTextViewText(R.id.title, news==null?context.getString(R.string.widget_problem_title):news[currentNews].title);
      remoteViews.setTextViewText(R.id.brief,news==null?context.getString(R.string.widget_problem_breif):news[currentNews].brief);
      remoteViews.setImageViewBitmap(R.id.image, imageBitmap);
      ComponentName thisWidget = new ComponentName( context, NewsWidgetProvider.class );
      AppWidgetManager.getInstance(context).updateAppWidget( thisWidget, remoteViews );
  }
  
  private void openNewsActivity(Context context) {
      Intent o=new Intent(context, NewsActivity.class);
      o.putExtra(NewsItem.EXTRA_NEWS_ITEM,news[currentNews]);
      o.putExtra(NewsItem.EXTRA_NEWS_SOURCE_IS_PUSH_OR_WIDGET,true);
      o.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
      context.startActivity(o);
  }
  
  private void setPendingIntents(Context context, int[] appWidgetIds, RemoteViews remoteViews) {
      remoteViews.setOnClickPendingIntent(R.id.next_news, getPendingSelfIntent(context, NEXT_NEWS, appWidgetIds));
      remoteViews.setOnClickPendingIntent(R.id.previous_news,getPendingSelfIntent(context,PREVIOUS_NEWS,appWidgetIds));
      remoteViews.setOnClickPendingIntent(R.id.title,getPendingSelfIntent(context,GO_TO_NEWS_ACTIVITY,appWidgetIds));
      remoteViews.setOnClickPendingIntent(R.id.brief,getPendingSelfIntent(context,GO_TO_NEWS_ACTIVITY,appWidgetIds));
      remoteViews.setOnClickPendingIntent(R.id.image,getPendingSelfIntent(context,GO_TO_NEWS_ACTIVITY,appWidgetIds));
  }
  
  protected PendingIntent getPendingSelfIntent(Context context, String action,int[] appWidgetIds) {
      Intent intent = new Intent(context, getClass());
      intent.setAction(action);
      intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, appWidgetIds);
      PendingIntent pendingIntent = PendingIntent.getBroadcast(context,
              0, intent, 0);
      return pendingIntent;
  }
  private void loadItemFromSharedPreference(Context context) {
  
      currentNews=SharedPreferencesManager.getInteger(context, CURRENT_NEWS_KEY, 0);
      news=SharedPreferencesManager.getObject(context, NEWS_LIST_KEY,NewsItem[].class);
      AQuery aq = new AQuery(context);
      imageBitmap= news == null ? BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_launcher) : aq.getCachedImage(news[currentNews].imageUrl,200);
  }
  
  private void startService(Context context) {
      Intent broadcastIntent = new Intent(context, NewsWidgetService.class );
      //only start service if news is null
      if (SharedPreferencesManager.getObject(context, NEWS_LIST_KEY, NewsItem[].class)==null)
          context.startService(broadcastIntent);
  }
  </code></pre>
  
  <p>}</p>
  
  <p>The code is working in (kitkat,jelly...) but it's not working in lollipop</p>
  
  <p>Am I missing something?</p>