title: Android AlarmManager and BroadcastReceiver running in background Service
body: <p>I'm currently having a problem integrating AlarmManager and BroadcastReceiver.</p>
  
  <p>Im my app, I'm running a background service that runs regardless that app is running or not. I think I get this part working fine. The background service keeps an array that changes based on user's location. However, at 8:00am everyday, I want the app to reset the array variable to default. After much looking around online, it seems like the way to do this is via AlarmManager (to initiate the task every 8:00am) and using BroadcastReceiver (to receive the alarm, and perform the task).</p>
  
  <p>So basically the code goes something like this:</p>
  
  <pre><code>public class BackgroundService extends Service {
  
      private ArrayList thisArray;
  
      private BroadcastReceiver thisReceiver = new BroadcastReceiver(){
  
          @Override
          public void onReceive(Context context, Intent intent) {
              setArrayToDefault();
          }
  
      }
  
      @Override
      public void onCreate(){
  
          super.onCreate();
          Calendar cal = new GregorianCalendar();
          cal.add(Calendar.MINUTE, 2); //example
  
          this.registerReceiver(thisReceiver, new IntentFilter("BackgroundService"));
  
          AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
          alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), ONE_MINUTE, "what to put here?"); //example, repeat every minute
  
      }
  
      private void setArrayToDefault(){
          //here, the array will be changed back to default values
      }
  }
  </code></pre>
  
  <p>My main issue is on how to set the AlarmManager to call thisReceiver everytime it's set. Any idea? Is my approach correct?</p>