2012-07-12 6 views
2

나는 Arduino와 상호 작용하는 Android 애플리케이션을 개발 중입니다. 여러 활동을 관리하려고하는데, 각 활동은 Arduino 보드의 특정 부분을 제어해야합니다.Arduino + Android : 활동 전환 방법

불행히도 웹 튜토리얼에서는 하나의 활동 만 사용합니다. 따라서 새로운 활동으로 이동하거나 올바르게 닫은 다음 Arduino와의 연결을 유지하고 새로운 활동에서 다시 열기 위해 진행하는 방법을 모르겠습니다.

아이디어가 있으십니까?

답변

0

이전에 Arduino를 Java와 함께 사용하지 않았지만 Singleton 패턴을 따르고 싶을 수 있습니다. 싱글 톤 패턴을 사용하면, 당신이 그것에 접속하기 위해 사용하고있는 어떤 객체라도 여러 액티비티와 다중 쓰레드로부터 액세스 할 수 있습니다.

싱글 톤을 사용하면 문제가 완화됩니다. 여전히 닫고 다시 여는 방법을 알아야합니다.

또한 Activity Lifecycle의 작동 방식을 알고 있어야합니다. 사용자가 전화를 받으면 화면이 꺼지거나 화면 방향이 바뀌면 활동이 파괴되고 다시 만들어집니다. 자신이 어디에 있었는지 저장하고 복원 할 방법을 처리해야합니다. 이것은 연결을 닫거나 다시 열어야한다는 것을 의미합니다.

+2

이 인이 이미 또 다른 질문/답변으로 처리 할 수있는 방법 깨지기 쉬운. 나는이 접근법을 시도했고, 안드로이드가 메모리를 풀기 위해 전체 클래스를 언로드 할 때 불타 버렸다. 서비스 접근법은 @ A.H에 기술되어있다. 시계처럼 작동합니다. –

+0

잘 고맙습니다. 감사합니다. – Scen

4

Arduino에 연결하고 해당 연결을 유지하려면 Service을 사용할 수 있습니다. 당신의 활동은 시작되고, 서비스 대화를 나눌 수, 중지, 전환 등

편집 :

Long running ADK Accessory (Service?)

+0

+1 좋은 제안. 비슷한 프로젝트를하고 있는데이 방법을 사용할 수도 있습니다. – ZnArK

+0

안녕하세요,이 답변에 감사드립니다. 좋은 해결책이라고 생각합니다. 그러나 나는 어떻게 처리해야하는지 정말로 모른다. Google (http://developer.android.com/tools/adk/adk.html)의 DemoKit 샘플을 사용하고 있지만 액세서리를 가져 오기 위해 getLastNonConfigurationInstance()와 같은 활동에 연결된 기능을 사용합니다. 이러한 기능은 서비스에서 사용할 수없는 것으로 보입니다. 또한 통신 루프를 실행하기 위해 실행 파일을 사용합니다. 내 서비스에서도 실행 파일을 사용해야합니까? 사용할 수있는 샘플 코드가 있습니까? DemoKitActivity.java 코드는 다음에서 찾을 수 있습니다. http://bit.ly/OpNhgy – Ldoppea

+0

링크 된 소스보기 : 액세서리는 처음에 'UsbManager'에서 가져옵니다. 저쪽에 : 미안, 나는 ADK에 너를 도울 수 없다. 링크 된'Service' 문서를 조금 탐구하고 _spewific_ 문제로 _new_ 질문을 공식화해야합니다. 이 사이트에서 의견을 처리하는 것은 싫은 일입니다. 이것에 대한 사이트 FAQ를 검색 할 수 있습니다. –