何时使用和不使用android应用程序类?
我正在考虑使用android类来存储应用程序中其他(片段)活动共享的临时状态和公共代码 我想获得更多反馈,了解这是否是一个适合以下人员的好地方:何时使用和不使用android应用程序类?,android,android-context,Android,Android Context,我正在考虑使用android类来存储应用程序中其他(片段)活动共享的临时状态和公共代码 我想获得更多反馈,了解这是否是一个适合以下人员的好地方: 共享常量,如ID、pref键名称等 全局变量(即setter/getter),反映当前UI状态、导航、选定片段,以及通常不需要持久化的临时数据 当某些条件被触发时,用于持久化数据的钩子 在首选项更改后更新UI 提供从应用程序中任何位置访问上下文的简便方法,包括getApplication()不可用的代码,例如通过静态getter,如MyApp.getA
getApplication()
不可用的代码,例如通过静态getter,如MyApp.getApp()
李>
C.SHARED\u PREFS
更容易理解Application.SHARED\u PREFS
IMHO
反映当前UI状态的全局变量(即setter/getter),
导航、所选片段,以及通常用于
不需要持久化
在它所关注的活动或组件中(例如,活动的UI状态可能应该存储在icicle包中,或者存储在该活动的实例中),这样做会更好
当某些条件被触发时,用于持久化数据的钩子
这应该没问题
在首选项更改后更新UI
同样,我觉得在各个部分中这样做会更好
提供了从应用程序中任何位置访问上下文的简便方法,
包括getApplication()不可用的代码,例如通过
静态getter,如MyApp.getApp()
这会起作用,但要小心内存泄漏。当从活动或服务或其他方式调用方法时,通常应将上下文作为参数传入。内存泄漏的可能性更小
需要全局状态变量可见性的常用方法
这将变得太麻烦,无法转移到专门的
上课
我觉得最好是使用专门的类,因为当你的应用在功能和大小上有所增长时,这将变得很难维护。这可能是可以连接某些挂钩的地方
例如,如果您使用崩溃报告库,您只需要使用应用程序类,因为这是连接ACRA的地方。这迫使我开始使用这个类;我以前从来都不需要这个 平展
-1
,因为这篇文章有一大堆好问题,也会让其他用户受益。:)相关的“活动”实际上是一个ViewPager,它包含多个FragmentActivity页面,因此需要保持状态并允许片段之间的通信。在这种情况下,使用事件imho将是过分的。