对于我目前的项目,我将使用此SlidingUpPanel library。
向上滑动面板将托管一个包含应用程序/全局级别信息的片段。该面板将在我的应用程序的每个活动中。这与Google Play音乐的工作方式非常相似。
我的问题是,在我的应用程序中保持向上滑动面板片段的最佳方法是什么?我看到自己以两种方式解决这个问题......
这两种方式中哪一种最好? 1.甚至可能吗?有这些方法的编码地雷吗?
答案 0 :(得分:1)
存储片段以在整个应用程序生命周期中持续存在将是非常不正统的,主要是因为片段类应该能够遵循它的正常生命周期事件(在这种情况下,主要是onPause和onResume)而不是被卡在某处在应用程序类中。
通常的做法是每次显示片段时存储数据并加载它。如果要启用某种缓存或单例模式来访问数据,则最有可能是该片段可以访问的另一个对象,但不是片段中的成员。
有一个good video from google about leaking views,它简要介绍了与你在第1号弹药中提出的建议类似的陷阱。
答案 1 :(得分:1)
我认为您的应用程序的结构看起来应该是单个活动,其中包含该栏,然后主要内容为Fragment
,您可以替换并使用addToBackStack
打开保持使用后退按钮。否则,您将在解决方案2中使用大量重复代码(这意味着在错误等情况下需要进行大量重复工作,不能很好地维护),或使用解决方案1泄漏视图。