2012-06-21 4 views
0

내 연구 그룹의 가속도계 데이터를 가져 오기 위해 Service의 가속도계 (무기한으로 실행)를 사용하려고합니다.서비스의 가속도계

public class AccService extends Service implements SensorEventListener

내 질문에 내가 센서를 등록 할 때, 나는 핸들러 매개 변수 (다른 스레드)를 registerListener를 통과해야 또는 그냥 처리기없이 실행해야한다는 것입니다?

registerListener(SensorEventListener listener, Sensor sensor, int rate, Handler handler)

registerListener(SensorEventListener listener, Sensor sensor, int rate).

+0

AFAIK 서비스 UI 스레드에서 실행됩니다, 그래서 당신이 처리기를 사용해야한다고 생각하지만 100 % – Jug6ernaut

+0

그건 정확히 내가 그것에 대해 의심의 여지가있다. UI 스레드에서 실행하고 싶지 않아 응용 프로그램이 종료 된 후 죽을 수도 있습니다. 나는 그런 일이 일어나기를 원하지 않는다. – Thawda

+0

서비스가 죽을 수있는 유일한 방법은 포 그라운드 서비스에서 실행하여 파손되지 않도록 시스템이 메모리를 요구하는 경우입니다. – Jug6ernaut

답변

1

ServiceSensorEventListener을 구현해야한다고 생각하지 않습니다. Service 안에 새로운 Thread을 새로 만들어야합니다. 기본적으로 UI 스레드에서 실행되므로 센서 데이터 수집 전용으로 설계된 또 다른 클래스입니다. 그리고 가속 데이터는 화면이 꺼진 후 이 아니고이 수집된다는 것을 명심하십시오. 가장 쉬운 방법은 WakeLock을 추가하는 것입니다.