title: START_STICKY, foreground Android service goes away without notice
body: <p>I have started a service in my new application.  The service is foregrounded, with a Notification.  When this is run in the AVD 2.1 API Level 7, all works fine.  But when it's run on a Samsung Galaxy Tab running Gingerbread, the service will start (the icon and app name appear at the top of the notification area), but after a few seconds, the service disappears.  The last entry in the Log that I can see is associated with my App, is the result of my Log.d("Taglines","Returning with " + START_STICKY), which immediately precedes "return START_STICKY ;" in my Service's onStartCommand override, as follows:</p>
  
  <pre><code>@Override
  public int onStartCommand(Intent intent, int flags, int startId) {
  
      int rc ;
      Log.d("Taglines","onStartCommand()");
      Toast.makeText(this, "Starting service TagsManager", Toast.LENGTH_SHORT).show();
      Log.d("Taglines","Calling super.onStartCommand()");
      rc = super.onStartCommand(intent,flags,startId);
      Log.d("Taglines","super.onStartCommand return code was " + rc);
      createNotification(INITIAL_NOTIFICATION_TEXT);
      Log.d("Taglines","Returning with " + START_STICKY);
      return START_STICKY ;
  }
  </code></pre>
  
  <p>The notification is set like this:</p>
  
  <pre><code>void createNotification(String text) {
  
      Log.d("Taglines","createNotification called");
      if (mNotificationManager == null) {
          // Get a reference to the Notification Manager
          String ns = Context.NOTIFICATION_SERVICE;
          mNotificationManager = (NotificationManager) getSystemService(ns);
          Log.d("Taglines","Obtained reference to Notification Manager");
      }
  
      // Instantiate the Notification
      int icon = R.drawable.ic_notification;
      CharSequence tickerText = "Taglines";
      long when = System.currentTimeMillis();
  
      notification = new Notification(icon, tickerText, when);
  
      // Define Notification's expanded message and intent
      Log.d("Taglines","createNotificacion() .. getApplicationContext");
      context = getApplicationContext();
      contentText = text;
      // notificationIntent = new Intent(this, TagsOverview.class);
      notificationIntent = new Intent(this, TagsServiceMenu.class);
      contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
  
      notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
  
      // Pass the Notification to the NotificationManager: 
      Log.d("Taglines","createNotificacion() ... passing notification");
      mNotificationManager.notify(NOTIFICATION_ID, notification);
      Log.d("Taglines","Starting foreground");
      startForeground(NOTIFICATION_ID, notification);
      Log.d("Taglines","Started");
  }
  </code></pre>
  
  <p>This is the result from "adb logcat" when the service is started:</p>
  
  <pre><code>D/Taglines(21863): Starting service
  D/Taglines(21863): TagsManager(nullary) completed
  D/Taglines(21863): onStartCommand()
  D/Taglines(21863): Calling super.onStartCommand()
  D/Taglines(21863): super.onStartCommand eturn code was 2
  D/Taglines(21863): createNotification called
  D/Taglines(21863): Obtained reference to Notification Manager
  D/Taglines(21863): createNotificacion() .. getApplicationContext
  D/Taglines(21863): createNotificacion() ... passing notification
  D/Taglines(21863): Starting foreground
  D/Taglines(21863): Started
  D/Taglines(21863): Returning with 1
  </code></pre>
  
  <p>After that, nothing special  (nothing at all from PID 21863).  Just a bunch of:</p>
  
  <pre><code>D/KeyguardViewMediator(  302): setHidden false
  D/KeyguardViewMediator(  302): setHidden false
  D/KeyguardViewMediator(  302): setHidden false
  D/KeyguardViewMediator(  302): setHidden false
  D/KeyguardViewMediator(  302): setHidden false
  W/InputManagerService(  302): Window already focused, ignoring focus gain of:         com.android.internal.view.IInputMethodClient$Stub$Proxy@40bc06e8
  D/KeyguardViewMediator(  302): setHidden false
  D/KeyguardViewMediator(  302): setHidden false
  D/KeyguardViewMediator(  302): setHidden false
  D/KeyguardViewMediator(  302): setHidden false
  D/KeyguardViewMediator(  302): setHidden false
  D/KeyguardViewMediator(  302): setHidden false
  D/KeyguardViewMediator(  302): setHidden false
  D/KeyguardViewMediator(  302): setHidden false
  D/KeyguardViewMediator(  302): setHidden false
  </code></pre>
  
  <p>I don't think it's needed in this case, but here's the relevant portion of the AndroidManifest.xml:</p>
  
  <pre><code>    &lt;service android:name=".TagsManager"
               android:exported="false"&gt;
      &lt;/service&gt;
  </code></pre>
  
  <p>Where might I have gone wrong?  What other information can I provide?</p>