2013-11-22 4 views
3

원격보기를 사용하여 LiveCard를 업데이트하는 데 문제가 있습니다. 이 코드를 사용하여 게시하고 있습니다. TimelineManager.getLiveCard (id)를 사용하여 LiveCard를 가져 와서 다시 게시 할 수 있다고 가정합니다. 내가 얻은 결과는 두 개의 라이브 카드입니다. 나는 같은 이드를 사용하여 카드를 발행한다.
해결 방법으로 게시 취소 후 게시 중이지만 그 사이에는 '확인 글라스'가 표시되므로 원활한 전환이 아닙니다. Google Glass GDK : LiveCards (RemoteViews) 업데이트

private void publishCard(Context context) { 
    String cardId = "myCard"; 
    mLiveCard = tm.getLiveCard(cardId); 
    mLiveCard.setNonSilent(true); 
    RemoteViews rv = new RemoteViews(context.getPackageName(), 
      R.layout.activity_vitals_glass); 
    rv = updateViews(rv, pr); 
    mLiveCard.setViews(rv); 
    Intent intent = new Intent(context, MenuActivity.class); 
    mLiveCard.setAction(PendingIntent.getActivity(context, 0, intent, 0)); 
    mLiveCard.publish(); 
} 

updateViews() 메소드

는 원격보기 textviews를 설정한다. LiveCard를 RemoteViews로 업데이트하는 올바른 방법은 무엇입니까?

+0

activity_vitals_glass.xml의 모양은 무엇입니까? – johnarleyburns

답변

5

getLiveCard은 새로운 라이브 카드를 생성하므로 서비스가 시작될 때 한 번만 호출하고받은 LiveCard 인스턴스를 캐시해야합니다.

RemoteViews 인스턴스도 동시에 캐시 할 수 있습니다. 카드를 게시 한 후 업데이트하려면 RemoteViews 세터 중 하나를 호출 한 후 LiveCard에서 다시 setViews으로 직접 전화해야합니다.