Как отменить регистрацию прослушивателя на датчике после остановки службы?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как отменить регистрацию прослушивателя на датчике после остановки службы?

Сообщение Anonymous »

Я создаю приложение, которое запускает службу при нажатии кнопки «Пуск» и останавливает ее при нажатии кнопки «Стоп». в службе я регистрирую прослушиватель для датчика АКСЕЛЕРОМЕТР, чтобы получать значения акселерометра по осям x, y, z.. но когда я останавливаю свое приложение и отменяю регистрацию прослушивателя от датчика, даже тогда я получаю значения своего акселерометра.

Вот код:

Код: Выделить всё

// 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 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
}
};


Кто-нибудь может мне помочь??

Подробнее здесь: https://stackoverflow.com/questions/975 ... he-service
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»