2011-02-09 5 views
0

GPS를 지속적으로 수집해야하는 어플리케이션을 개발해야합니다. [esp. 사용자가 움직이고있을 때, 즉 여행 할 때, 그렇지 않으면 편안하게 될 수있다). 또한 웹 서버와 통신하고 서버로부터 응답을 처리해야합니다. 따라서이 (응답 처리) 부분 애플리케이션은 지속적으로 폴링해야합니다.android application design

서버의 응답을 기반으로 사용자에게 UI를 보여줍니다.

디자인에 대해 명확하지 않습니다.

서비스를 시작한 곳에서 활동을 만들어야합니까? 서비스를 별도의 스레드로 실행해야합니까 (이것은 항상 백그라운드에서 실행됩니다).

두 가지 서비스를 만들 계획입니다. GPS 데이터를 지속적으로 수집하는 서비스.

폴링을 위해 웹 서버 [타이머/알람 관리자 시작]과 통신하기위한 기타 서비스. 또한이 두 서비스가 서로 통신 할 수 있습니다.

응답 frm 서버를 처리 한 후에도 서비스는 사용자 인터페이스를 시작하여 일부 양식을 표시 할 수 있어야합니다. 나는 이것을 어떻게 처리해야하는지 명확하지 않다.

또한 GPS 데이터를 지속적으로 수집해야하는 경우 필요한 wockelock을 확보하고 있습니다.

명확히하십시오.

감사합니다.

답변

1

폴링에 AlarmManager를 사용할 수 있습니다. 간격을 설정하기 만하면됩니다. 응용 프로그램, 서비스, 활동의 대부분이 컨텍스트임을 대부분 알게 될 것입니다. 그래서 그들은 모두 Application Context를 얻을 수 있습니다. 의사 소통에 대해 생각하는 방법은 안드로이드 메시지/이벤트가 본질적으로 의도라는 것입니다. 따라서 사용자 정의 인 텐트를 정의합니다. 액션에 대한 사용자 정의 이름을 지정하기 만하면됩니다. 그런 다음 인 텐트 필터를 사용합니다. startService, startActivity를 수행하여 포인트 투 포인트 메시징을 수행하거나 인 텐트를 브로드 캐스팅 할 수 있습니다. 방송 된 의도를 통해 의사 소통을하는 것이 좋습니다. 메시지 라우팅은 인 텐트 필터를 사용하여 처리됩니다. form 등을 시작하는 것은 startActivity (Intent) 일 뿐이며 Intent 자체는 intent.getExtras()를 사용하여 포함 할 수 있습니다. Bundle에 넣을 수있는 한, 그것을 전달하고 표시 할 수 있습니다. 질문에 답하기 위해 인 텐트를 모든 것에 사용하십시오. 커뮤니케이션을 위해 방송 및 필터링을 사용하고 인 텐트를 다시 표시하여 활동을 시작하십시오.

1

5 월 10 일 Google I/O에는 Android Pro Tips라는 오후 세션이있었습니다. 첫 번째 섹션에서는 앱을 더 지속적으로 위치 인식하기위한 여러 가지 접근법에 대해 설명했습니다.