2010-08-17 14 views
1

Je dois créer un service qui lit les capteurs, effectue une transformée de Fourier rapide et enregistre les résultats dans la base de données, mais je dois communiquer 2 valeurs au service lorsque je le lance (combien de valeurs prendre et une chaîne pour le db). Comment puis-je communiquer cela au service?Communiquer avec un service Android

En outre, je dois démarrer le service à chaque fois.

EDIT: Ici, il y a une bonne explication ->http://www.androidcompetencycenter.com/2009/01/basics-of-android-part-iii-android-services/

Répondre

0

Vous pouvez lier et appeler une méthode sur votre service onServiceConnected de la ServiceConnection

+0

Mais ce que je peux communiquer avec le service Wile est en marche? – Skatephone

+0

Oui, avec bindService et votre objet ServiceCommunication et votre classeur – fedj

+0

J'ai réussi à communiquer avec le service mais maintenant j'ai un nouveau problème: si j'essaye le programme normalement, c'est ok, mais si un appui sur le bouton rouge du téléphone rend l'écran noir que ne pas enregistrer les valeurs de mes capteurs? une idée? – Skatephone

0

que je fais sur mon application mais je ne « t parviennent à passer les variables Torec et camp:

private ServiceConnection mConnection = new ServiceConnection() { 
     public void onServiceConnected(ComponentName className, IBinder service) { 
      mBoundService = ((SensorService.LocalBinder)service).getService(); 
      Toast.makeText(SensorsState.this, R.string.local_service_connected, 
        Toast.LENGTH_SHORT).show(); 
      mBoundService.toRec=toRec; 
      mBoundService.camp=CAMPIONI_FFT; 
     } 

     public void onServiceDisconnected(ComponentName className) { 
      mBoundService = null; 
      Toast.makeText(SensorsState.this, R.string.local_service_disconnected, 
        Toast.LENGTH_SHORT).show(); 
     } 
    }; 

    void doBindService() { 
     bindService(new Intent(SensorsState.this, 
       SensorService.class), mConnection, Context.BIND_AUTO_CREATE); 
     mIsBound = true; 
    } 

    void doUnbindService() { 
     if (mIsBound) { 
      unbindService(mConnection); 
      mIsBound = false; 
     } 
    } 
    @Override 
    protected void onDestroy() { 
     super.onDestroy(); 
     doUnbindService(); 
    } 

de Tnk
Questions connexes