android开发之重写Application类
来源:互联网 发布:绘画截屏软件 编辑:程序博客网 时间:2024/06/05 08:12
在android应用开发中,重写Application也算是比较常见的,以前开发的一些程序太过于简单,都不要重写这个类,但是在真正的商业开发中,重写Application类几乎是必做的。
为什么要重写Application?
1.处理全局变量,在整个应用程序范围内共享数据
2.管理Activity,当应用程序退出时,销毁所有的Activity
3.初始化应用程序的配置信息
4.当系统内存不足时应用能够做出合理的响应
…..
关键地方都已用注释说明。
那么怎么在Activity中使用这个类呢?
为什么要重写Application?
1.处理全局变量,在整个应用程序范围内共享数据
2.管理Activity,当应用程序退出时,销毁所有的Activity
3.初始化应用程序的配置信息
4.当系统内存不足时应用能够做出合理的响应
…..
继承了Application之后,一定要在清单文件中声明,即指明Application节点的name属性即可:
<application></application>重写的Application类:
/** * 注意,在重写方法时必须调用超类的事件处理程序 * @author 王松 * @date 2015年7月30日 */public class MyApplication extends Application { private String globalVar; private MyApplication instance; private List activities; /** * 单例模式 * @return */ public MyApplication getInstance(){ if(instance == null) return new MyApplication(); return instance; } /** * 添加activity * @param a */ public void addActivity(Activity a){ activities.add(a); } /** * 遍历所有Activity并finish */ public void finishActivity() { for (Activity activity : activities) { if (activity != null && !activity.isFinishing()) { activity.finish(); } } } public String getGlobalVar() { return globalVar; } public void setGlobalVar(String globalVar) { this.globalVar = globalVar; } /** * 在创建应用程序时调用,可以重写这个方法来实例化应用程序单态,以及创建和实例化任何应用 * 程序状态变量或共享资源 */ @Override public void onCreate() { super.onCreate(); activities = new LinkedList(); } /** * 作为onLowMemory的一个特定于应用程序的替代选择,在android4.0时引入, * 在程序运行时决定当前应用程序应该尝试减少其内存开销时(通常在它进入后台时)调用 * 它包含一个level参数,用于提供请求的上下文 */ @Override public void onTrimMemory(int level) { super.onTrimMemory(level); } /** * 与Activity不同,在配置改变时,应用程序对象不会被终止和重启。 * 如果应用程序使用的值依赖于特定的配置,则重写这个方法来重新加载这些值,或者在应用程序级别处理这些值的改变 */ @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); } /** * 当系统处于资源匮乏时,具有良好行为的应用程序可以释放额外的内存。 * 这个方法一般只会在后台进程已经终止,但是前台应用程序仍然缺少内存时调用。 * 我们可以重写这个程序来清空缓存或者释放不必要的资源 */ @Override public void onLowMemory() { super.onLowMemory(); } }
关键地方都已用注释说明。
那么怎么在Activity中使用这个类呢?
MyApplication mp = (MyApplication) getApplication(); mp.setGlobalVar(张三);就是这么简单,不过大多情况下我们都会用Map来存储全局变量,这里为了简单,就直接使用了String。
阅读全文
0 0
- android开发之重写Application类
- android开发之重写Application类
- android开发 - Application类
- 重写Application类
- android之application类
- Android开发中的Application类
- android ndk 开发之Application.mk
- android ndk 开发之Application.mk
- android ndk 开发之Application.mk
- android ndk 开发之Application.mk
- Android学习之Application类
- 开发笔记:android ndk 开发之Application.mk
- Android开发之Android Context,上下文(Activity Context, Application Context)
- Android开发之重写ViewGroup借助ViewDragHelper类实现view移动
- Android开发中Application类简介
- Android 开发文档 之程序基础Application Fundamentals
- Android开发之Intent的传值--Application
- Android项目工具类之Application
- 栈的压入弹出序列
- tf.nn函数总结
- Mysql的锁
- 杭电 OJ 1170 Balloon Comes!
- Android动态权限申请
- android开发之重写Application类
- sleep(),wait(),yield(),join()方法的区别
- poj 1862 Stripies
- 1599
- Canvas Frames
- 外观模式--你指挥大管家就可以了
- python笔记1
- 触摸屏代码分析——实现按下中断
- HDU-6050 Funny Function