저는 Android에서 올바르게 서비스를 사용하는 방법에 대한 조언을 구하는 Android 놈입니다. TCP를 통해 데이터 스트림을 얻으려면 인터넷에있는 서버에 연결할 응용 프로그램을 만들고 있습니다. 그런 다음 데이터를 블루투스 직렬 포트를 통해 연결된 다른 장치로 보내야합니다. 사용자가 다른 활동을 보면서이 기능이 백그라운드에서 계속 작동되기를 바랍니다.Android 서비스 디자인 - 활동을 시작하거나 필요한 경우에만 시작 하시겠습니까?
이 응용 프로그램은 인터넷에서 실시간 RTK 보정 데이터를 가져 와서 블루투스를 통해 연결하는 RTK GPS 수신기로 전송하는 NTRIP 클라이언트입니다. 데이터 속도는 약 500 바이트/초입니다. 사용자 인터페이스는 데이터 스트림을 연결하거나 연결 해제하는 단일 단추이며 일부 텍스트는 GPS 수신기의 상태를 표시합니다. 또한 연결할 서버의 IP/포트 및 통신 할 블루투스 장치와 같이 사용자가 구성해야하는 몇 가지 설정이 있습니다.
로컬 서비스를 스폰하는 주 활동이 필요하다고 생각한 다음 서비스에서 TCP 스트림 용 스레드와 블루투스 연결 용 스레드를 생성해야한다고 생각합니다. 이 말이 맞습니까?
이 시나리오에서 서비스에 가장 적합한 모델은 무엇입니까?
- 작업이 시작될 때마다 서비스를 시작 (바인딩)하고 연결/연결 끊기 버튼이 서비스를 시작하고 스레드를 중지하라는 명령을 보내도록합니다. 이 경로를 선택하면 사용자가 연결을 끊고 다른 앱으로 이동 한 후에도 서비스가 계속 실행됩니다. 서비스 자체를 종료하려면 비활성 타이머가 필요합니다.
- 사용자가 연결/연결 끊기 버튼을 누르면 서비스가 시작되고 서비스가 중지됩니다. 이 서비스는 데이터가 이동할 때만 실행됩니다. 이렇게하면 액티비티가 시작될 때 액티비티가 실행 중인지 여부를 확인하여 서비스에 바인딩해야하는지 또는 링크가 연결 해제되었음을 사용자에게 알릴 필요가 있습니다.
감사합니다.
부분적으로 틀리며 다른 부분은 완전히 혼동스럽고 명확하지 않을 수도 있습니다. –