Come annullare la logging di un ascoltatore da un sensore dopo aver interrotto il servizio?

Sto creando un'applicazione che avvia un servizio quando viene premuto il button "Avvio" e lo arresta quando viene premuto il button "Arresto". nel servizio, registro un ascoltatore per il sensore ACCELEROMETER in modo che ottengo i valori dell'accelerometro di assi x, y, z .. ma quando interrompe la mia applicazione e annullerò l'annullamento dell'ascoltatore dal sensore, persino allora ottengo i miei valori dell'accelerometro.

Ecco il codice:

  • visualizza i dati dopo each 10 secondi in Android
  • Android: submit periodicamente i dati di posizione in background (each 30 secondi) e chiedere al server nuovi dati
  • Downgrade Xamarin.Android
  • Come posso impostare la risorsa drawableRight tramite codice?
  • Imansible risolvere un tipo di file di YouTubePlayerSupportFragment
  • Stringa o intestazione dell'agente utente personalizzato senza modificare le stringhe di cordova
  • // Service public class Accel extends Service { private static Context CONTEXT; private static Sensor sensor; private static SensorManager sensorManager; private static boolean running = false; @Override public void onCreate() { } // code to execute when the service is shutting down @Override public void onDestroy() { if (isListening()) stopListening(); } // code to execute when the service is starting up @Override public void onStart(Intent intent, int startid) { CONTEXT = this; startListening(this); } public static Context getContext() { return CONTEXT; } // Returns true if the manager is listening to orientation changes public static boolean isListening() { return running; } //Unregisters listeners public static void stopListening() { running = false; sensorManager.unregisterListener(sensorEventListener, sensor); } /** * Registers a listener and start listening * @param accelerometerListener * callback for accelerometer events */ public static void startListening(AccelerometerListener accelerometerListener) { sensorManager = (SensorManager) getContext().getSystemService(Context.SENSOR_SERVICE); List<Sensor> sensors = sensorManager.getSensorList(Sensor.TYPE_ACCELEROMETER); if (sensors.size() > 0) { sensor = sensors.get(0); running = sensorManager.registerListener(sensorEventListener, sensor, SensorManager.SENSOR_DELAY_GAME); listener = accelerometerListener; } } /** * The listener that listen to events from the accelerometer listener */ private static SensorEventListener sensorEventListener = new SensorEventListener() { public void onAccuracyChanged(Sensor sensor, int accuracy) {} public void onSensorChanged(SensorEvent event) { // the code to perform on sensor change } }; 

    }

    Chiunque può aiutarmi?

  • Come posso integrare Paypal agli utenti di pagamento quando si fa clic su un button?
  • android tempo di timer conto alla rovescia
  • Utilizzando GCM per submit notifiche sull'app, restituisce l'errore InvalidRegistration
  • Perché ci sono pixel aggiuntivi intorno a Android GridView?
  • Android, come distriggersre l'effetto "eliminare" quando si avvia una nuova attività?
  • Barra di avanzamento di Android AsyncTask
  • One Solution collect form web for “Come annullare la logging di un ascoltatore da un sensore dopo aver interrotto il servizio?”

    onDestroy() non può essere richiamato dal sistema operativo immediatamente nella tua applicazione. Mettere il tuo stopListening() su onPause() e startListening() nelle funzioni di onResume() . In questo modo è garantito avere l'app registrare e annullarsi la logging con i sensori.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.