Beschleunigungssensor in separatem Gewinde

Ich speichere Daten vom Beschleunigungssensor in der Datenbank, aber ich möchte dies in einem separaten Thread tun. Ich habe versucht, es im Internet zu suchen, aber die meisten von ihnen verwenden den gleichen Thread. Bitte helfen Sie. Dinge, die ich ausprobiert habe: 1)

SenSorEventListener sel;
    Thread A=new Thread(){
                public void run()
                {
                    sel=new SensorEventListener() {

                        @Override
                        public void onSensorChanged(SensorEvent event) {
                            // TODO Auto-generated method stub
                            double Acceleration,x,y,z;
                            x=event.values[0];
                            y=event.values[2];
                            z=event.values[2];
                            Acceleration=Math.sqrt(x*x+y*y+z*z);
                            db.addAccel(Acceleration);
                            Log.d("MESSAGE","SAVED");
                        }

                        @Override
                        public void onAccuracyChanged(Sensor sensor, int accuracy) {
                            // TODO Auto-generated method stub

                        }
                    };
                }
            };
            A.start();
            try {
                A.join();
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            sm.registerListener(sel,s,1000000);
}

Ich nahm einen SensorEventListener, initialisierte ihn in einem neuen Thread und registrierte ihn dann beim Register Listener.

Ein anderer Ansatz: Ich habe die Accelerometer-Klasse mit der Runnable-Schnittstelle implementiert, alles in Constructor initialisiert, sodass meine run () -Methode leer ist, aber dieser Ansatz erstellt keinen neuen Thread.

    Accelerometer(Context con,Database d)
        {   
            sm=(SensorManager)con.getSystemService(Context.SENSOR_SERVICE);
            s=sm.getSensorList(Sensor.TYPE_ACCELEROMETER).get(0);
            sm.registerListener(this,s,1000000);
            db=d;
        }
   void run()
   {}

Bitte schlagen Sie mir einen anderen Ansatz vor oder wenn ich in den oben genannten Ansätzen etwas falsch mache.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage