Android 谷歌玻璃导航处理

Android 谷歌玻璃导航处理,android,navigation,google-glass,google-gdk,Android,Navigation,Google Glass,Google Gdk,我注意到,在我创建的glass应用程序中,当我试图从一个活动切换到另一个活动时,菜单似乎变得混乱,我的LiveCard中显示了一个无法关闭的鬼活动 我已经回顾了一些示例(例如指南针),但我们没有任何高级导航示例。你能帮我定义一下到目前为止在应用程序中构建导航的约定吗?这将有助于解决我的问题,因为我意识到我正在创建多个LiveCard,这似乎不正确 活动:我应该创建多个活动,还是应该循环使用相同的活动来替换UI?如果有多个活动,在加载新活动时销毁前一个活动的服务是一个好主意吗 服务:从广义上讲,所

我注意到,在我创建的glass应用程序中,当我试图从一个活动切换到另一个活动时,菜单似乎变得混乱,我的LiveCard中显示了一个无法关闭的鬼活动

我已经回顾了一些示例(例如指南针),但我们没有任何高级导航示例。你能帮我定义一下到目前为止在应用程序中构建导航的约定吗?这将有助于解决我的问题,因为我意识到我正在创建多个LiveCard,这似乎不正确

活动:我应该创建多个活动,还是应该循环使用相同的活动来替换UI?如果有多个活动,在加载新活动时销毁前一个活动的服务是一个好主意吗

服务:从广义上讲,所有活动是否应该使用一个服务来处理导航(在活动之间切换)?如果只有一个服务,它是否应该停止/重新启动?您如何在使用服务的活动之间切换,因为我们没有活动或活页夹中对服务的引用?或者每个活动都应该有一个服务来处理导航

LiveCards:我认为应该只创建一个livecard,那么如何在不创建新活动的情况下在活动之间切换呢?为任何能够使用此LiveCard的服务保留全局引用是否是惯例

我问了很多问题,其中一些问题我可能会偏离正题,但我可以使用任何指导!我在google上找不到一个好的指南来定义Nagiviation的预期行为。我作为一名安卓开发人员工作了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);

我们可能都是GDK的新手,所以我肯定不是比你更专业的人。 我将与您分享我迄今为止的经验:

活动: 我只在想要创建沉浸感时才使用这些。我认为决定是要有多个活动还是一个活动的唯一原因应该是可读性。如果你只需要沉浸其中,那么你可以直接开始你的活动,而不是使用服务

服务: 我发现有一个中央服务很有用。尤其是在项目中,我有状态完整的对象,其生命周期跨越多个活动。如果您的导航取决于连接的状态,那么让服务管理导航也很有意义,例如启动新的活动。活动可以使用任何适当的方法进行交互并向服务提供结果,例如意图、广播、绑定、单例。。。 我通常浏览一下清单,然后选择第一个符合要求的。如果我能做我想做的事情,那通常是我的第一选择

现场卡片: 中央服务也是管理您希望在其他活动中共享的livecard的好地方。同样,向活动公开live card接口的方法取决于您想要的接口类型(抽象接口与直接接口)


让我知道你的想法。

你的评论已经非常有用了。我知道有一种不同于LiveCards的应用程序结构,但我不知道它叫什么(沉浸)。这肯定会解决我遇到的许多导航问题。这本指南特别有用:感谢您的反馈,这将有助于指导未来的应用程序结构。谢谢你的时间。再次感谢,沉浸感很棒!我的应用程序现在已经按预期工作了,非常棒。迫不及待地想在一两个月内发布到商店。