Датчик акклерометра в отдельной резьбе

Я сохраняю данные из датчика акселерометра в базу данных, но я хочу сделать это в отдельном потоке. Я пытался найти его в Интернете, но большинство из них использует одну и ту же ветку. Пожалуйста помоги. Вещи, которые я пробовал: 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);
}

Я взял SensorEventListener, инициализировал его в новом потоке и затем зарегистрировал его в регистре слушателя.

Другой подход: я реализовал класс Accelerometer с использованием интерфейса Runnable, инициализировал все в конструкторе, поэтому мой метод run () пуст, но этот подход не создает новый поток.

    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()
   {}

Пожалуйста, предложите мне другой подход или если я делаю что-то не так в вышеупомянутых подходах.

Ответы на вопрос(1)

Ваш ответ на вопрос