当我编写方法或使用成员变量时,我经常发现我需要在应用程序中共享它们.但他们应该去哪里? 我可以将Activity子类化,但是一旦我使用MapView并且被迫使用MapActivity就会失败,所以我的所有
我可以将Activity子类化,但是一旦我使用MapView并且被迫使用MapActivity就会失败,所以我的所有活动都不会从我的子类继承.我有办法解决这个问题吗?
在继承不适用的情况下,我倾向于将泛型方法和成员变量放入Application对象的子类中,但我发现它创建了一堆代码,因为每个类都需要通过via获取对应用程序对象的访问权限上下文,或者我必须把它传下来.
我怀疑我最好创建MyApplication.getInstance()并将所有内容保存在单例中,而不是通过应用程序类传递应用程序对象.但之前我想看看你们要说些什么.
如果要访问活动之外的“Global Singleton”并且不希望通过所有涉及的对象传递Context来获取单例,则可以如您所述定义应用程序类中的静态属性,其中包含对自身的引用.只需在onCreate()方法中初始化该属性.例如:
public class ApplicationController extends Application { private static ApplicationController _appCtrl; public static ApplicationController getAppCtrl() { return _appCtrl; } }
资源的一个示例:因为Application的子类也可以获取资源,所以只需在定义静态方法时可以访问它们,返回它们,如:
public static Resources getAppResources() { return _appCtrl.getResources(); }