2011-03-18 10 views
0

백그라운드에서 실행중인 서비스가 있습니다. 어떤 조건에 따라 활동을 시작해야합니다. 액티비티는 응답을 되돌려 보내야합니다.android : 백그라운드에서 실행중인 서비스와 활동 간의 통신

Google 검색을 통해 알림 메커니즘을 사용해야한다는 것을 알았습니다. 그러나 활동에서 서비스 실행으로 응답을 보내는 방법을 명확하게 밝히지 않았습니다.

또한 서비스는 센서 데이터 (가속도계, GPS)를 수집합니다. 센서 데이터 수집이 영향을받지 않도록 별도의 스레드에서 작업을 시작해야합니다.

명확히하십시오.

답변

0

기본 UI 스레드에서 작업이 시작되지만 문서에 따라 서비스가 메인 스레드에서 만들어지기 때문에 장기 실행 서비스가 실행되어 자체 스레드를 관리해야합니다.

기본적으로 통신하는 가장 좋은 방법은 Intent을 사용하는 것입니다. 이렇게하면 발신자/수신자가 느슨하게 연결될 수 있습니다 (즉, 귀하의 경우 활동/서비스). 인 텐트는 안드로이드 측면에서 큰 주제이지만 아직 가장 근본적인 주제 중 하나입니다. 온라인 튜토리얼을 찾아야한다고 생각합니다.

0

활동이 열리고 활동 태스크를 완료 한 후 결과를 리턴하는 경우 startActivityForResult을 사용하고 결과를 리턴 할 수 있습니다.

알림을 사용하는 것은 간단합니다. 인터페이스 클래스를 만들고 서비스에 클래스를 구현하십시오. 데이터를 다시 서비스로 보내야하는 경우 데이터로 적절한 메소드를 호출하면됩니다.

관련 문제