Android 从实用程序类获取活动
我的应用程序中有一个常见的问题,我将功能提取到处理此功能的类中,而不是其他。问题是,我经常需要一个活动的实例来实现大部分功能,如读取文件、访问数据库等,因此我必须将当前活动传递给实用程序,这使得代码很难看 现在,我正在考虑建立一个包含对我的“开始”活动的引用的单例,然后将这个单例注入到我的utillites中。但是,这是一个问题,但是,我不控制某个活动是否被删除或仍然处于活动状态,Android会这样做。所以我的活动可能不够活跃,无法再使用了 因此,总而言之,我不相信存储对某个活动的引用是安全的,我也不希望每次调用都传递当前活动。解决办法是什么。我是偏执狂吗?:-) 提前谢谢Android 从实用程序类获取活动,android,android-activity,lifecycle,Android,Android Activity,Lifecycle,我的应用程序中有一个常见的问题,我将功能提取到处理此功能的类中,而不是其他。问题是,我经常需要一个活动的实例来实现大部分功能,如读取文件、访问数据库等,因此我必须将当前活动传递给实用程序,这使得代码很难看 现在,我正在考虑建立一个包含对我的“开始”活动的引用的单例,然后将这个单例注入到我的utillites中。但是,这是一个问题,但是,我不控制某个活动是否被删除或仍然处于活动状态,Android会这样做。所以我的活动可能不够活跃,无法再使用了 因此,总而言之,我不相信存储对某个活动的引用是安全的
罗兰你是对的,许多安卓操作需要一个
活动
,或者(通常)只是一个上下文
。如果您的实用程序类没有在上下文的生命周期之外保留引用,那么您应该不会有问题
我会避开提及你的“开始”活动的单身人士,因为你的应用程序的第一个活动可能会被破坏,即使后续活动是活动的和可见的
另一种方法可能是实现自己的抽象类(例如,BaseActivity
),实现或包装所有其他活动继承的实用程序类的功能,而不是直接实现Activity
。通过这种方式,您可以使管道远离主要活动的逻辑。不要存储对活动的引用。您可以改用应用程序上下文:只有一个上下文,只要您的应用程序处于活动状态,它就保证可用。为了便于访问,您可能需要定义一个应用程序
类,并向其添加一个getInstance()
方法。这种方法的问题在于,并非所有需要上下文的操作都可以使用应用程序上下文执行。任何与视图相关的操作都可能失败