当我编写方法或使用成员变量时,我经常发现需要在应用程序中共享它们。但他们应该去哪里呢?
我可以对 Activity 进行子类化,但是一旦我使用 MapView 并被迫使用 MapActivity,这种情况就会失败,因此并非所有活动都继承自我的子类。我有办法解决这个问题吗?
在继承不适用的情况下,我倾向于将泛型方法和成员变量放入 Application 对象的子类中,但我发现它会创建一堆代码,因为每个类都需要通过 via 获取对应用程序对象的访问权限上下文,否则我必须将其传递下去。
我怀疑我最好创建 MyApplication.getInstance() 并将所有内容保留在单例中,而不是通过应用程序类向下传递应用程序对象。但在我想看看你们要说什么之前
如果您想在活动之外访问“全局单例”并且不想通过Context
通过所有涉及的对象来获取单例,您可以按照您的描述,在应用程序类中定义一个静态属性,该属性保存对其自身的引用。只需初始化属性onCreate()
method.
例如:
public class ApplicationController extends Application {
private static ApplicationController _appCtrl;
public static ApplicationController getAppCtrl()
{
return _appCtrl;
}
}
一个资源示例:因为Application
也可以获取资源,您可以简单地在定义返回它们的静态方法时访问它们,例如:
public static Resources getAppResources()
{
return _appCtrl.getResources();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)