2013-11-22 41 views
3

在使用遠程視圖更新LiveCard時出現問題。我使用此代碼發佈。我假設你可以使用TimelineManager.getLiveCard(id)獲得LiveCard,然後再次發佈。我得到的結果是兩個LiveCards。我在發佈卡片時都使用相同的ID。
作爲一種解決方法,我取消發佈然後發佈,但這不是一個平滑過渡,因爲它顯示了之間的「好玻璃」。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。使用RemoteViews更新LiveCard的正確方法是什麼?

+0

你的activity_vitals_glass.xml是什麼樣的? – johnarleyburns

回答

5

getLiveCard創建一個新的活動卡,所以您應該只在您的服務啓動時調用一次,並緩存您收到的LiveCard實例。

您還可以同時緩存RemoteViews實例。要在發佈後更新該卡,只需在致電RemoteViews設定人員之後再次手動撥打setViews上的LiveCard即可。