title: Android IntentService not starting
body: <p>I know this question has been asked many times, but all the other threads didn't solve my issue at all, I can't see anything wrong with my code. Maybe I missed something here, can anyone help me out?</p>
  
  <p>Code for the Intent Service:</p>
  
  <pre><code>package Services;
  
  import android.app.IntentService;
  import android.content.Intent;
  import android.widget.Toast;
  
  public class WifiSearchService extends IntentService {
  
    /** 
     * A constructor is required, and must call the super IntentService(String)
     * constructor with a name for the worker thread.
     */
    public WifiSearchService() {
        super("WifiSearchService");
    }
  
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Toast.makeText(this, "service starting", Toast.LENGTH_SHORT).show();
        return super.onStartCommand(intent,flags,startId);
    }
  
    /**
     * The IntentService calls this method from the default worker thread with
     * the intent that started the service. When this method returns, IntentService
     * stops the service, as appropriate.
     */
    @Override
    protected void onHandleIntent(Intent intent) {
        // Normally we would do some work here, like download a file.
    // For our sample, we just sleep for 5 seconds.
        long endTime = System.currentTimeMillis() + 5*1000;
        while (System.currentTimeMillis() &lt; endTime) {
            synchronized (this) {
                try {
                    wait(endTime - System.currentTimeMillis());
                } catch (Exception e) {
                }
            }
        }
    }
  
  }
  </code></pre>
  
  <p>Starting the service by flicking a switch:</p>
  
  <pre><code>package com.cdobiz.wifimapper;
  
  import Services.WifiSearchService;
  import android.os.Bundle;
  import android.app.Activity;
  import android.app.ActivityManager;
  import android.app.ActivityManager.RunningServiceInfo;
  import android.content.Context;
  import android.content.Intent;
  import android.util.Log;
  import android.view.Menu;
  import android.widget.CompoundButton;
  import android.widget.CompoundButton.OnCheckedChangeListener;
  import android.widget.Switch;
  
  public class MainActivity extends Activity {
  
      private Context context;
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
  
          context = this;
  
          setContentView(R.layout.activity_main);
  
  
          Switch serviceSwitch = (Switch) this.findViewById(R.id.switchService);
  
          serviceSwitch.setChecked(isMyServiceRunning());
  
          serviceSwitch.setOnCheckedChangeListener(new OnCheckedChangeListener(){
  
              @Override
              public void onCheckedChanged(CompoundButton view, boolean state) {
  
                  if(state){
                      startService(new Intent(context, WifiSearchService.class));
                  }else{
                      stopService(new Intent(context, WifiSearchService.class));
                  }
              }
  
          });
  
      }
  
      private boolean isMyServiceRunning() {
          ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
          for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
              Log.v("debug", service.service.getClassName());
              if ("com.cdobiz.wifimapper.services.WifiSearchService".equals(service.service.getClassName())) {
                  return true;
              }
          }
          return false;
      }
  
  
      @Override
      public boolean onCreateOptionsMenu(Menu menu) {
          // Inflate the menu; this adds items to the action bar if it is present.
          getMenuInflater().inflate(R.menu.activity_main, menu);
          return true;
      }
  
  }
  </code></pre>
  
  <p>Manifest:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.cdobiz.wifimapper"
      android:versionCode="1"
      android:versionName="1.0" &gt;
  
      &lt;uses-sdk
          android:minSdkVersion="14"
          android:targetSdkVersion="17" /&gt;
      &lt;uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/&gt;
  
      &lt;application
          android:allowBackup="true"
          android:icon="@drawable/ic_launcher"
          android:label="@string/app_name"
          android:theme="@style/AppTheme" &gt;
          &lt;activity
              android:name="com.cdobiz.wifimapper.MainActivity"
              android:label="@string/app_name" &gt;
              &lt;intent-filter&gt;
                  &lt;action android:name="android.intent.action.MAIN" /&gt;
  
                  &lt;category android:name="android.intent.category.LAUNCHER" /&gt;
              &lt;/intent-filter&gt;
          &lt;/activity&gt;
          &lt;service android:enabled="true" android:name=".services.WifiSearchService"&gt;&lt;/service&gt;
      &lt;/application&gt;
  
  &lt;/manifest&gt;
  </code></pre>