Android之Application简介
来源:互联网 发布:java开发环境的搭建 编辑:程序博客网 时间:2024/04/29 21:34
Android之Application简介
每次应用程序运行时,应用程序的Application类都保持实例化状态。与Activity不同,配置改变并不会导致应用程序重启。通过其扩展Application类,可以完成以下3项工作:
- 对Activity运行时广播的应用程序级事件(如低内存)作出响应。
- 在应用程序组件之间传递对象。
- 管理和维护多个应用程序组件使用的资源。
其中,后两项工作使用一个单态类能够更好的完成。在Manifest中注册了Application实现以后,它会在创建应用程序进程的时候得到实例化。因此,Application的实现在本质上是单态的,并且应该作为单态进行实现,以便提供对其方法和成员变量的访问。
1.1 扩展和使用Application类
public class MyApplication extends Application {private static MyApplication singleton;// 返回应用程序实例public static MyApplication getInstance() {return singleton;}@Overridepublic void onCreate() {super.onCreate();singleton = this;}}在创建新的Application类后,必须使用一个name属性在Manifest的application节点中注册它,如下所示:
<application android:name="com.veione.mycontentprovider.MyApplication" android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" >当应用程序开始运行时,Application实现将会得到实例化。创建新的状态变量和全局资源,以便从应用程序组件中进行访问:
MyObject value=MyApplication.getInstance().getGlobalStateValue();MyApplication.getInstance().setGlobalStateValue(myObjectValue);
1.2 重写应用程序的生命周期事件
Application类为应用程序的创建和终止、低可用内存和配置改变了提供了事件处理程序(如前面部分所述)。
通过重写以下这些方法,可以为上述几种情况实现自己应用程序行为:
- onCreate :在创建应用程序时调用。可以重写这个方法来实例化应用程序单态,以及创建和实例化任何应用程序状态变量或共享资源。
- onLowMemory :当系统处于资源匮乏的状态时,具有良好行为的应用程序可以释放额外的内存。这个方法一般只会在后台进程已经终止,但是前台应用程序仍然缺少内存调用时调用。可以重写这个处理程序来清空缓存或者释放不必要的资源。
- onTrimMemory :作为onLowMemory的一个特定于应用程序的替代选择,在Android4.0(API level 13)中引入。当运行时决定当前应用程序应该尝试减少其内存开销时(通常在它进入后台时)调用。它包含一个level参数,用于提供请求的上下文。
- onConfigurationChanged :与Activity不同,在配置改变时,应用程序对象不会被终止和重启。如果应用程序使用的值依赖于特定的配置,则重写这个方法来重新加载这些值,或者在应用程序级别处理配置改变。
如下所示,必须重写这些方法时调用超类的事件处理程序。
public class MyApplication extends Application {private static MyApplication singleton;// 返回应用程序实例public static MyApplication getInstance() {return singleton;}// 应用程序创建时@Overridepublic void onCreate() {super.onCreate();singleton = this;}// 系统低内存时@Overridepublic void onLowMemory() {super.onLowMemory();}// 减少内存开销时@Overridepublic void onTrimMemory(int level) {super.onTrimMemory(level);}// 配置改变时@Overridepublic void onConfigurationChanged(Configuration newConfig) {super.onConfigurationChanged(newConfig);}}
留个笔记。
0 0
- Android之Application简介
- android 的Application简介
- Android NDK学习之五、Application.mk简介
- Android NDK Application.mk简介
- Android之Application
- android之application类
- Android之Application
- android之Application
- Android之Application
- Android之Application
- android学习之application
- Android项目之Application
- Android 之 Application
- Android NDK学习 <四> Application.mk简介
- Android NDK学习 <四> Application.mk简介
- Android NDK学习 <四> Application.mk简介
- Android NDK学习 <四> Application.mk简介
- android application类简介(一)
- jquery 滚动特效
- Oracle开发环境搭建
- gcc/g++ 参数详解
- Extra约会大作战 浙江工商大学2015年新生赛
- 笔试面试题总结(四)--- 软件开发
- Android之Application简介
- Halcon视频学习2.1-- 图形变量
- Overrall Perspective
- 从 Program Manager 看 Leader 是什么角色
- 理论: 图论(1): 基础概念
- Hibernate基本特性一 -- 对象持久化
- 合并两个有序数组,合并之后也是有序数组
- 实战c++中的vector系列--再谈vector的insert()方法(都是make_move_iterator惹的祸)
- linux添加用户命令useradd-29