请问一个关于自定义Application的问题
发布时间:2018-02-01 来源:查字典编辑
摘要:我自定义了一个Application,使用单例模式,但是为什么不能够把无参构造私有化呢?回复讨论(解决方案)你不需要把自定义Applicat...
我自定义了一个Application,使用单例模式,但是为什么不能够把无参构造私有化呢?
回复讨论(解决方案)
你不需要把自定义Application声明为单例模式,它的实例化根本不是你控制的,而是Android底层控制的。楼主思考一个问题就明白了:请问你什么时候用过Application app = new Application()这种东西?
理解了这个后,就不难明白为什么构造方法不能被声明为私有了,因为它的实例在其他地方被创建(具体是什么地方若有兴趣可以自行查阅资料,深入理解一下Context),你把构造方法私有化之后,其他地方就不能得到它的实例了。
如果你真的想在MyApplication中写一个获取该实例的方法,直接这么写就好了:
你不需要把自定义Application声明为单例模式,它的实例化根本不是你控制的,而是Android底层控制的。楼主思考一个问题就明白了:请问你什么时候用过Application app = new Application()这种东西?
理解了这个后,就不难明白为什么构造方法不能被声明为私有了,因为它的实例在其他地方被创建(具体是什么地方若有兴趣可以自行查阅资料,深入理解一下Context),你把构造方法私有化之后,其他地方就不能得到它的实例了。
如果你真的想在MyApplication中写一个获取该实例的方法,直接这么写就好了:
谢谢,确实对Context缺少研究,还需多花点时间了解了解 SORRY!!!
这行代码应该是
public static MyApplication getApp(){
return app;
}
应该是静态方法,手残了不好意思!!