2014-05-15 3 views
0

내가 만든 유리 응용 프로그램 내에서 한 활동에서 다른 활동으로 전환하려고하는 동안 눈치 챘는데 메뉴가 엉망이되어 내 LiveCard에 표시되지 않는 유령 활동이 남았습니다 닫혀 야한다.Google 유리 네비게이션 처리

몇 가지 예 (예 : 나침반)를 살펴 보았지만 탐색을위한 고급 예제가 없습니다. 지금까지 애플 리케이션에서 네비게이션을 만들기 위해 합의 된 협약을 제게 정의하는 것을 도와 줄 수 있습니까? 이렇게하면 옳지 않은 여러 개의 LiveCard가 생성된다는 것을 알기 때문에 내 문제를 해결하는 데 도움이됩니다.

액티비티 : 여러 액티비티를 생성해야하나요? 아니면 동일한 액티비티를 UI 대신 교체해야합니까? 여러 활동 인 경우 새 활동을로드 할 때 이전 활동의 서비스를 삭제하는 것이 좋습니다.

서비스 : 광범위한 의미에서 모든 활동에서 내비게이션 (활동 간 전환)을 처리하는 데 사용되는 단일 서비스가 있어야합니까? 단 하나의 서비스라면 멈추거나 다시 시작해야합니까? 활동 또는 바인더의 서비스에 대한 참조가 없으므로 서비스를 사용하여 활동간에 어떻게 전환합니까? 또는 탐색을 처리 할 각 활동에 대한 서비스가 있어야합니까?

라이브 카드 : 하나의 라이브 카드 만 만들어야한다고 생각합니다. 그렇다면 새로운 활동을 만들지 않고 어떻게 활동간에 전환합니까? 어떤 서비스가이 LiveCard를 사용할 수 있도록 글로벌 참조를 유지하는 것이 관례입니까?

나는 많은 질문을 던졌고 그 중 일부는 기초가 될 수는 있지만 어떤 지침도 사용할 수 있습니다! 나는 실제로 goag에 대한 좋은 행동을 정의하기위한 좋은 가이드를 찾을 수 없다. 안드로이드 개발자로서 3 년 동안 왔으니 답답함이 복잡해지기를 바랍니다! 고마워.

편집 :이 도움이 경우 , 여기에 내가 한 활동에서 다음으로 이동하기 위해 사용하고 코드입니다 :

 mLiveCard = new LiveCard(this, GlobalConstants.LIVE_CARD_TAG_ACTIVITY2); 
     mRenderer = new MainRenderer(this); 

     mLiveCard.setDirectRenderingEnabled(true).getSurfaceHolder() 
       .addCallback(mRenderer); 

     // Display the options menu when the live card is tapped. 
     Intent menuIntent = new Intent(this, Activity2.class); 
     menuIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK 
       | Intent.FLAG_ACTIVITY_CLEAR_TASK); 
     mLiveCard.setAction(PendingIntent.getActivity(this, 0, menuIntent, 
       0)); 
     mLiveCard.attach(this); 
     mLiveCard.publish(PublishMode.REVEAL); 

답변

1

우리는 아마 모든 것이 GDK 꽤 새로운 그래서 나는 확실히 아니에요 전문가의 그 이상 당신. 내 경험이 지금까지 무엇인지 알려드립니다.

활동 : Immersions를 만들 때만 사용합니다. 나는 당신이 복수 또는 하나의 활동을 원한다고 결정할 유일한 이유는 가독성이어야한다고 생각합니다. 잠김이 필요하다면 서비스를 사용하는 대신 직접 활동을 시작할 수 있습니다.

서비스 : 하나의 중앙 서비스가있는 것이 유용하다는 것이 발견되었습니다. 특히 여러 액티비티에 걸쳐있는 라이프 사이클이있는 상태의 전체 개체가있는 프로젝트에서 특히 그렇습니다. 네비게이션이 예를 들어 또한 서비스가 네비게이션을 관리하게하는 의미가있다. 새로운 활동을 시작하십시오. 활동은 적절한 방법으로 서비스와 상호 작용하고 결과를 제공 할 수 있습니다. 의도, 방송, 바인더, 싱글 톤 ... 나는 보통 목록을 살펴보고 요구 사항에 맞는 첫 번째 것을 가져갑니다. 만약 내가 의도와 함께하고 싶은 일을 할 수 있다면 그것은 보통 나의 첫 선택입니다.

라이브 카드 : 중앙 서비스는 다른 활동에서 공유하려는 라이브 카드를 관리하는 데에도 유용합니다. 다시 라이브 카드 인터페이스를 액티비티에 노출시키는 방법은 원하는 인터페이스 종류 (추상 대 다이렉트)에 따라 다릅니다.

당신의 생각을 알려주세요.

+0

귀하의 의견은 이미 매우 도움이됩니다.LiveCards와는 다른 유형의 앱 구조가 있다는 것을 알았지 만 이름이 무엇인지 알지 못했습니다 (Immersions). 이것은 분명히 내가 가지고 있었던 많은 탐색 문제를 해결할 것입니다. 이 가이드는 특히 도움이되었습니다. https://developers.google.com/glass/develop/gdk/immersions 의견을 보내 주셔서 감사 드리며, 앞으로 앱 구조를 안내하는 데 도움이됩니다. 시간 내 줘서 고마워. – azdragon2

+0

다시 한 번 감사드립니다. immersions는 훌륭합니다! 내 응용 프로그램은 이미 예상대로 작동하고 있으며 awesomeeeee입니다. 1 ~ 2 달 안에 출시하기 위해 기다릴 수 없습니다. – azdragon2