Google Glass GDK:更新LiveCards(RemoteViews)

Pat*_*ick 3 google-glass google-gdk

使用远程视图更新LiveCard时出现问题.我正在使用此代码发布.我假设您可以使用TimelineManager.getLiveCard(id)获取LiveCard,然后再次发布.我得到的结果是两个LiveCards.我发布卡片的时候我都使用相同的ID.
作为一种解决方法,我正在取消发布然后发布,但这不是一个平滑的过渡,因为它显示了"Okay Glass"之间.

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();
}
Run Code Online (Sandbox Code Playgroud)

updateViews()方法只是在远程视图上设置textviews.使用RemoteViews更新LiveCard的正确方法是什么?

Ton*_*ato 5

getLiveCard创建一个新的实时卡,因此您应该只在服务启动时调用它并缓存LiveCard您收到的实例.

您也可以同时缓存RemoteViews实例.要更新卡它的发布后,你只需要手动调用setViewsLiveCard再次调用任何的后RemoteViews制定者.