Le Service n'est pas créé (ou connexion) après bindService()

J'ai ce service simple qui diffuse l'emplacement actuel de l'utilisateur. Je veux utiliser le mécanisme de liaison de contrôler le service de cycle de vie, mais le service est tout simplement pas partir.

Qu'ai-je fait de mal?

public class GPSActivity extends ListActivity {
...
protected void onResume() {
        super.onResume();

        Log.i("Service", "Service bound");
        Intent intent = new Intent(this, LocationService.class);
        bindService(intent, service_connection , Context.BIND_AUTO_CREATE);
    }

protected void onPause() {
        if (dataUpdateReceiver!=null)
            unregisterReceiver(dataUpdateReceiver);
        unbindService(service_connection);
        super.onPause();
    }
class LocationServiceConnection implements ServiceConnection{
        public void onServiceConnected(ComponentName name, IBinder service) {
            Log.i("Service", "Service Connected");
        }
                public void onServiceDisconnected(ComponentName name) {

        }
    }
}

LocalBinder.java

public class LocalBinder<S> extends Binder {
    private String TAG = "LocalBinder";
    private  WeakReference<S> mService;


    public LocalBinder(S service){
        mService = new WeakReference<S>(service);
    }


    public S getService() {
        return mService.get();
    }
}

LocationService.java

public class LocationService extends Service {
    public void onCreate() {
        initLocationListener();
        Log.i("Location Service","onCreate()");
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.i("Location Service", "Received start id " + startId + ": " + intent);
        return START_NOT_STICKY;
    }

    private final IBinder mBinder = new LocalBinder<LocationService>(this);
    @Override
    public IBinder onBind(Intent intent) {
        return mBinder;
    }
}

AndroidManifest.xml

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    ...

    <service android:name=".LocationService">
    </service>
</application>  

EDIT: Fixe grâce à NickT de réponse.

Le manifeste d'entrée n'ont pas de filtre d'intention ou le nom correct

<service
   android:enabled="true"
   android:name="com.android.gps.services.LocationService">
   <intent-filter>
          <action android:name="com.android.gps.services.LocationService" />
   </intent-filter>
</service>

Et de l'intention que j'ai utilisé pour la liaison a été comme ceux que vous devez utiliser lors du démarrage d'une activité. la bonne est:

Intent intent = new Intent("com.android.gps.services.LocationService");
Quel est votre public IBinder onBind(Intent intent) méthode dans LocationService.java ressembler?
J'ai édité la question d'inclure le onBind() la méthode.
Hm. Et vous n'êtes même pas obtenir le Log.i("Location Service","onCreate()"); connectez-vous à votre logcat?
Je ne suis pas.

OriginalL'auteur bughi | 2012-05-14