android application常见错误
不过自定义Application也并没有什么副作用,它和单例模式二选一都可以实现同样的功能,但是我见过有一些项目,会把自定义Application和单例模式混合到一起使用,这就让人大跌眼镜了。一个非常典型的例子如下所示:
- public class MyApplication extends Application {
- private static MyApplication app;
- public static MyApplication getInstance() {
- if (app == null) {
- app = new MyApplication();
- }
- return app;
- }
- }
就像单例模式一样,这里提供了一个getInstance()方法,用于获取MyApplication的实例,有了这个实例之后,就可以调用MyApplication中的各种工具方法了。
但是这种写法对吗?这种写法是大错特错!因为我们知道Application是属于系统组件,系统组件的实例是要由系统来去创建的,如果这里我们自己去new一个MyApplication的实例,它就只是一个普通的Java对象而已,而不具备任何Context的能力。有很多人向我反馈使用 LitePal 时发生了空指针错误其实都是由于这个原因,因为你提供给LitePal的只是一个普通的Java对象,它无法通过这个对象来进行Context操作。
那么如果真的想要提供一个获取MyApplication实例的方法,比较标准的写法又是什么样的呢?其实这里我们只需谨记一点,Application全局只有一个,它本身就已经是单例了,无需再用单例模式去为它做多重实例保护了,代码如下所示:
- public class MyApplication extends Application {
- private static MyApplication app;
- public static MyApplication getInstance() {
- return app;
- }
- @Override
- public void onCreate() {
- super.onCreate();
- app = this;
- }
- }
getInstance()方法可以照常提供,但是里面不要做任何逻辑判断,直接返回app对象就可以了,而app对象又是什么呢?在onCreate()方法中我们将app对象赋值成this,this就是当前Application的实例,那么app也就是当前Application的实例了。
android application常见错误相关推荐
- Android 开发常见错误
大家都在为项目开发成功而喜悦,但可不知成功的路上是会经常出错的,下面是我碰到的一些错误集合! [错误信息] [2011-01-19 16:39:10 - ApiDemos] WARNING: Appl ...
- android应用常见错误
一.错误:Unknown host api.tudou.com, throwing UnknownHostException. 解决办法:在AndroidManifest.xml中添加<uses ...
- cocos2d-lua 3.5 android搭建常见错误
新建一个项目,就不说了,就是用命令行 cocos new HelloLua -p com.wwj.hellolua -l lua -d ~/Cocos2dxProj ,生成下 然后把项目导入eclip ...
- linux编译安装的报错,linux编译安装时常见错误解决办法
This article is post on https://coderwall.com/p/ggmpfa 原文链接:http://www.bkjia.com/PHPjc/1008013.html ...
- NDK编译php,Android NDK编译常见错误及解决方案
Android NDK编译常见错误及解决方案 Error 1:$ ndk-build/cygdrive/c/andy/abc/obj/local/armeabi-v7a/objs/abc//hello ...
- Android NDK开发(三)——常见错误集锦以及LOG使用,androidndk
Android NDK开发(三)--常见错误集锦以及LOG使用,androidndk 转载请注明出处:http://blog.csdn.net/allen315410/article/details/ ...
- android中ndk编译错误,Android NDK编译常见错误及解决方案
Android NDK编译常见错误及解决方案 Error 1:$ ndk-build/cygdrive/c/andy/abc/obj/local/armeabi-v7a/objs/abc//hello ...
- Android 源码编译及常见错误及解决方法
Android 源码编译及常见错误及解决方法 参考文章: (1)Android 源码编译及常见错误及解决方法 (2)https://www.cnblogs.com/kyyblabla/p/360393 ...
- Android开发各类常见错误解决方案
本文属于个人平时项目开发过程遇到的一些问题,记录下来并总结解决方案,希望能帮到大家解决问题,有些问题的解决方案是在StackoverFlow上找到的,建议大家遇到问题多去上面找,基本上都能找到解决方案 ...
最新文章
- 【100题】第十五题(树的镜像问题)
- 记录一下HALCON检测螺钉是否存在
- 关于tcp和http
- CentOS 7源码安装httpd服务
- MySQL触发器的使用
- 对DotNet分布式应用搭建的考虑(引用)
- Sql Server事务日志
- java 课后习题 三角形面积计算
- C++ 双端队列deque
- 六年级下册百分数计算题_六年级数学上册期末试卷(附答案)
- 解决scrollView上subView下移20point问题的一种方式
- Monad B2 For Dotnet Framework 2.0 RC/RTM Released!
- 印度孵化器的红利期才刚到,但花样还真不少
- 构建自己企业的邮箱验证服务
- 怎么自费出书方法步骤
- 圣杯布局和双飞翼布局
- 提交您的博客到各大网站
- 日语假名小写怎么打出来?
- 大数据信息资料采集:淘宝飞猪旅游酒店客栈旅社公寓数据信息采集
- TCP/IP系列之数据链路层