2016-08-23 3 views
0

백그라운드에서 여러 스레드를 실행하는 지속적인 백그라운드 서비스의 시작/중지를 허용하는 테스트 응용 프로그램을 만들어야합니다. (주로 WebSocket Server 및 Tango 위치 서비스). 웹 브라우저를 시작하고 ws 소켓에 연결할 수 있도록 영구해야합니다. 다음과 같이 내가 무엇을 읽고에 따르면안드로이드에서 지속적인 다중 스레드 서비스를 시작하는 올바른 방법

, 응용 프로그램이 구성되어야한다

활동 -> 서비스 (지속적인) -> (서비스 (탱고) + 실 (WS))

영구 서비스 요구 startForeground()을 사용하여 전경 서비스로 실행되고 별도의 프로세스 (매니페스트에서 설정)로 실행되므로 작업이 닫힐 때 닫히지 않습니다.

질문 : 1) 현재 이해가 정확한가요? 아니면 잘못된 방향으로 접근하고 있습니까? 2) 나중에 서비스를 중지하려면 해당 활동을 시작하고 거기에서 중지 할 수 있어야합니다. 액티비티는 서비스가 실행 중이고 서비스가 어떻게 연결되는지를 어떻게 알 수 있습니까? 바인딩 파트를 구현해야합니까? 방법? 3) 대신 알림을 사용하고 거기에서 닫는 2)을 달성 할 수 있습니까?

답변

0

이것은 내가 생각해 낼 수있는 최선이며 지금까지 작동하는 것 같습니다. 그러나 누군가가이 "이상"을 구현하는 더 좋은 방법을 가지고 있다면 그 대답으로 바꿀 것입니다.

제가 설명한 해결책은 제가 위에서 언급 한 것으로 귀결됩니다. 유일한 것은 포인터를 전달하는 새로운 클래스에서 Runnable을 구현해야한다는 것입니다. 서비스의 주 스레드에서 별도의 스레드에 있어야하는 네트워크 코드가 실행되지 않도록하는 것이 매우 중요합니다.