title: java.lang.NullPointerException error when using alarm manager
body: <p>This error <code>java.lang.NullPointerException</code> is be displaying, when I use alarm manager to fire notification using receiver.</p>
  
  <p>I select an item from <code>listView</code> then it call <code>setNotification</code> method then it set repeating alarm to fire notification.</p>
  
  <p>This is the code:</p>
  
  <pre><code>public class TimesActivity extends OptionsMenu {
  
      ArrayList&lt;String&gt; getTiName = new ArrayList&lt;String&gt;();
      ArrayList&lt;String&gt; getTiTime = new ArrayList&lt;String&gt;();
      ArrayList&lt;String&gt; getTiBroad = new ArrayList&lt;String&gt;();
      ArrayList&lt;String&gt; getTiImg = new ArrayList&lt;String&gt;();
  
      public DAOTimes timeDatabase = null;
      int minutes;
      String prNameSelected;
      String prTimeSelected;
      Long now, start;
      int period;
      AlarmManager am;
  
      // =============================================================================
  
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.listvideo);
          timeDatabase = new DAOTimes(this);
          getTimes();
          showTimes();
      }               
  
      // =============================================================================
  
      @Override
      protected Dialog onCreateDialog(int id) {
  
          switch (id) {
          case 0:
              // Create out AlterDialog
              final CharSequence[] array = { "5 min", "10 min", "15 min",
                      "45 min", "60 min" };
              Builder builder = new AlertDialog.Builder(this);
  
              builder.setCancelable(true);
  
              builder.setNegativeButton("Cancel",
                      new DialogInterface.OnClickListener() {
                          public void onClick(DialogInterface dialog,
                                  int whichButton) {
                          }
                      });
              builder.setSingleChoiceItems(array, -1,
                      new DialogInterface.OnClickListener() {
  
                          @Override
                          public void onClick(DialogInterface dialog, int which) {
                              // TODO Auto-generated method stub
                              if (array[which] == "1 min") {
                                  minutes = 1;
                              } else if (array[which] == "10 min") {
                                  minutes = 10;
                              } else if (array[which] == "15 min") {
                                  minutes = 15;
                              } else if (array[which] == "45 min") {
                                  minutes = 45;
                              } else if (array[which] == "60 min") {
                                  minutes = 60;
                              }
  
                              dialog.dismiss();
                          }
                      });
              AlertDialog dialog = builder.create();
              dialog.show();
          }
          return super.onCreateDialog(id);
      }
  
      // =============================================================================
  
      public void setNotification() {
          Toast.makeText(TimesActivity.this, "result : ",
                  Toast.LENGTH_LONG).show();
          Calendar calendar = Calendar.getInstance();
          calendar.setTimeInMillis(System.currentTimeMillis());
          calendar.add(Calendar.MILLISECOND, period);
  
          Intent intent = new Intent(this, NotAlarm.class);
          PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0,
                  intent, PendingIntent.FLAG_CANCEL_CURRENT);
          am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
                  30000, pendingIntent);
  
  
  
      }
  
      // =============================================================================
  
      public void showTimes() {
          final ListView listview = (ListView) findViewById(R.id.listView1);
  
          listview.setOnItemClickListener(new ListView.OnItemClickListener() {
  
              @Override
              public void onItemClick(AdapterView&lt;?&gt; parent, View v,
                      int position, long id) {                
  
                  prNameSelected = getTiName.get(position);
                  prTimeSelected = getTiTime.get(position);
                  String date = getIntent().getStringExtra("DAY_DATE");
  
                  SimpleDateFormat format = new SimpleDateFormat(
                          "yyyy-MM-dd, HH:mm:ss.SS");
                  format.setLenient(false);
  
                  Calendar calendar = Calendar.getInstance();
                  int year = calendar.get(Calendar.YEAR);
                  int month = calendar.get(Calendar.MONTH);
                  int day = calendar.get(Calendar.DAY_OF_MONTH);
                  int hour = calendar.get(Calendar.HOUR_OF_DAY);
                  int minute = calendar.get(Calendar.MINUTE);
                  int second = calendar.get(Calendar.SECOND);
                  int millisecond = calendar.get(Calendar.MILLISECOND);
  
                  String time1 = year + "-" + (month + 1) + "-" + day + ", "
                          + hour + ":" + minute + ":" + second + "."
                          + millisecond;
                  Date date1;
                  try {
                      date1 = format.parse(time1);
                      now = date1.getTime();
                  } catch (ParseException e) {                    
                      e.printStackTrace();
                  }
  
                  String time2 = date + ", " + prTimeSelected + ":00.00";
                  Date date2;
                  try {
                      date2 = format.parse(time2);
                      start = date2.getTime();
                  } catch (ParseException e) {                    
                      e.printStackTrace();
                  }
  
                  int result = (int) (start - now);
  
                  if (start &gt; now) {
                      period = result;
                  } else {
                      // period = start + (7 * 24 * 60 * 60 * 1000);
                  }               
  
                  Toast.makeText(TimesActivity.this, "result : " + period,
                          Toast.LENGTH_LONG).show();
                  setNotification();
  //              showDialog(0);
              }
          });
  
          listview.setAdapter(new TimesAdapter(TimesActivity.this, getTiName
                  .toArray(new String[getTiName.size()]), getTiTime
                  .toArray(new String[getTiTime.size()]), getTiBroad
                  .toArray(new String[getTiBroad.size()]), getTiImg
                  .toArray(new String[getTiImg.size()])));
      }
  }
  </code></pre>
  
  <p>Receiver activity:</p>
  
  <pre><code>package com.shadatv.shada;
  
  import android.app.Notification;
  import android.app.NotificationManager;
  import android.app.PendingIntent;
  import android.content.BroadcastReceiver;
  import android.content.Context;
  import android.content.Intent;
  
  public class NotAlarm extends BroadcastReceiver {
  
      NotificationManager nm;
  
      @Override
      public void onReceive(Context context, Intent intent) {
          // TODO Auto-generated method stub
  
          NotificationManager nm = (NotificationManager) context
                  .getSystemService(Context.NOTIFICATION_SERVICE);
  
          Notification.Builder builder = new Notification.Builder(context);
          builder.setSmallIcon(android.R.drawable.btn_star);
          builder.setTicker("notification");
  
          Notification notify = builder.getNotification();
  
          CharSequence title = "you have been notified";
          CharSequence details = "bvcburhvurh uhuh hghu hu";
  
          PendingIntent pending = PendingIntent
                  .getActivity(context, 0, new Intent(), 0);
          notify.setLatestEventInfo(context, title, details, pending);
  
          nm.notify(0, notify);
  
      }
  
  }
  </code></pre>
  
  <p>logCat:</p>
  
  <pre><code>03-27 10:39:33.550: E/AndroidRuntime(3890): FATAL EXCEPTION: main
  03-27 10:39:33.550: E/AndroidRuntime(3890): java.lang.NullPointerException
  03-27 10:39:33.550: E/AndroidRuntime(3890):     at com.shadatv.shada.TimesActivity.setNotification(TimesActivity.java:161)
  03-27 10:39:33.550: E/AndroidRuntime(3890):     at com.shadatv.shada.TimesActivity$3.onItemClick(TimesActivity.java:228)
  03-27 10:39:33.550: E/AndroidRuntime(3890):     at android.widget.AdapterView.performItemClick(AdapterView.java:292)
  03-27 10:39:33.550: E/AndroidRuntime(3890):     at android.widget.AbsListView.performItemClick(AbsListView.java:1179)
  03-27 10:39:33.550: E/AndroidRuntime(3890):     at android.widget.AbsListView$PerformClick.run(AbsListView.java:2707)
  03-27 10:39:33.550: E/AndroidRuntime(3890):     at android.widget.AbsListView$1.run(AbsListView.java:3462)
  03-27 10:39:33.550: E/AndroidRuntime(3890):     at android.os.Handler.handleCallback(Handler.java:605)
  03-27 10:39:33.550: E/AndroidRuntime(3890):     at android.os.Handler.dispatchMessage(Handler.java:92)
  03-27 10:39:33.550: E/AndroidRuntime(3890):     at android.os.Looper.loop(Looper.java:137)
  03-27 10:39:33.550: E/AndroidRuntime(3890):     at android.app.ActivityThread.main(ActivityThread.java:4507)
  03-27 10:39:33.550: E/AndroidRuntime(3890):     at java.lang.reflect.Method.invokeNative(Native Method)
  03-27 10:39:33.550: E/AndroidRuntime(3890):     at java.lang.reflect.Method.invoke(Method.java:511)
  03-27 10:39:33.550: E/AndroidRuntime(3890):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
  03-27 10:39:33.550: E/AndroidRuntime(3890):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
  03-27 10:39:33.550: E/AndroidRuntime(3890):     at dalvik.system.NativeStart.main(Native Method)
  </code></pre>