 <blockquote> <p>SilentManager.mAlarmManager.cancel(SilentManager.pi); is the thing that keeps crashing if you leave the app and come back.</p> </blockquote> <p>Use <code>adb logcat</code>, DDMS, or the DDMS perspective in Eclipse to examine LogCat and look at the stack trace associated with your "crash". Most likely, you will find that it is a <code>NullPointerException</code>, because your process has been terminated and therefore your static <code>pi</code> data member is <code>null</code>.</p> <p>If this is your error, the solution is:</p> <p>Step #1: Get rid of the <code>pi</code> static data member.</p> <p>Step #2: When you <code>cancel()</code>, create a <code>PendingIntent</code> on an equivalent <code>Intent</code> to the one you used to create the alarm in the first place.</p>