2015-11-06 62 views
0

如果我们看一帮的Chromecast应用中,我们看到投放按钮在不同的意见/活动依然存在。也就是说,当我们在主要活动中连接到chromecast并稍后输入录像机活动时,投射按钮仍然可用。多个视图/活动控制CastButton

编程,究竟是什么期望的行为最好的设计?我所能想到的就是首先开始检测主要活动中可用的现有chromecast设备,并继续将此投射按钮作为参数传递给其他需要显示投射按钮的类。这是否有效?或者我们基本上会在不同的类中有很多重复的代码?你们是怎么用这种期望的行为来设计你的演员应用?

回答

1

你不通过周围活动之间铸按钮等您的程序基本上是与多个片段只是一个活动,在这种情况下,你没有任何问题,或者如果它有多个活动,每个活动增加了将按钮投射到其操作栏;首选版本是使用ActionProvider版本,但这不是必需的。更重要的是,如果你有多个活动,你想保持与每个单独活动之外相关的状态;所以用一个单身人士来维护这个状态是一个好方法。

我还建议你看看CastCompanionLibrary(CCL),并尝试使用该库来构建您的演员应用(或将演员功能添加到您现有的应用),因为该库负责处理一些重要的演员相关的任务给你。

+0

感谢。所以假设我们有一个活动(没有操作栏)与多个片段。我们仍然会使用单例方法来保持不同fragmentActivities中的投射按钮之间的状态吗?我想我的其他问题是,只要我的活动之一,将扩充ActionBarActivity或FragmentActivity,我将能够无需建立在我的应用程序自定义按钮,投加的Chromecast支持?因为我们可以在不同的类之间使用单例方法简单地维护状态,并且添加一个投射按钮可以在任何视图中发生? – jensiepoo

+0

对于第一个问题,我有点困惑,因为你提到的一个活动,但随后你谈谈“在不同的fragmentActivities ..cast按钮”? FragmentActivity是一项活动,那么您通过一项活动和多个FragmentActivities意味着什么?至于第二部分,维护状态对于你的应用来说是内在的东西,只要你在你的应用中有不同的“页面”(无论这个数量是多个碎片还是多个活动),拥有投影按钮在所有页面上都可见。 –

+0

我的意思是说一个活动和一堆其他视图不能扩展ActionBarActivity或FragmentActivity。扩展线性布局的类是否能够显示投射按钮?或者如果你想显示一个按钮,你是否总是需要扩展这两个类中的任何一个?我一直认为,只要您已将MRB添加到布局,就可以在任何地方发现mMediaRouterButton.setVisible(View.Visible)。 – jensiepoo