title: Widget onUpdate, onReceive
body: <p>I initialize some arrays in an onUpdate() method and after that, using an intent and a button, I try to call onReceive() function which runs fine but cannot access arrays set in onUpdate() method. Why is that? Those array's are object variables and are declared public.
  Am I missing something?</p>
  
  <pre><code>package net.aerosoftware.widgettest;
  
  import java.util.HashMap;
  import android.app.PendingIntent;
  import android.appwidget.AppWidgetManager;
  import android.appwidget.AppWidgetProvider;
  import android.content.Context;
  import android.content.Intent;
  import android.util.Log;
  import android.widget.RemoteViews;
  
  public class WidgetTest extends AppWidgetProvider {
  
      public static String ACTION_WIDGET_RECEIVER = "ActionReceiverWidget";
      public HashMap&lt;Integer, String&gt; channelsImages;
  
      @Override
      public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) 
      {
          Log.e("UPDATE", "Start");   
          RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.main);
  
          channelsImages = new HashMap&lt;Integer, String&gt;();
          channelsImages.put(0, "one");
          channelsImages.put(1, "two");
  
          Intent active = new Intent(context, WidgetTest.class);
          active.setAction(ACTION_WIDGET_RECEIVER);       
          PendingIntent actionPendingIntent = PendingIntent.getBroadcast(context, 0, active, 0);
          remoteViews.setOnClickPendingIntent(R.id.buttonclick, actionPendingIntent);
  
          super.onUpdate(context, appWidgetManager, appWidgetIds);
          appWidgetManager.updateAppWidget(appWidgetIds, remoteViews);
          Log.e("UPDATE", "End");
      }
  
      @Override
      public void onReceive(Context context, Intent intent) 
      {
          Log.e("RECEIVE", "Start 2");
          if (intent.getAction().equals(ACTION_WIDGET_RECEIVER)) 
          {
              try
              {
                  Log.e("SIZE", "Size Of channel array: "+channelsImages.size());
              }
              catch(Exception e)
              {
                  Log.e("ON_RECIEVE_ERROR", " "+e.getMessage());
              }
          }
          super.onReceive(context, intent);
          Log.e("RECEIVE", "End");
      }
  
  }
  </code></pre>