Application是Android程序的真正入口
来源:互联网 发布:润和软件同花顺 编辑:程序博客网 时间:2024/06/09 02:14
Application类
Application和Activity,Service一样是Android框架的一个系统组件,当Android程序启动时系统会创建一个Application对象,用来存储系统的一些信息。
Android系统自动会为每个程序运行时创建一个Application类的对象且只创建一个,所以Application可以说是单例(singleton)模式的一个类。
通常我们是不需要指定一个Application的,系统会自动帮我们创建,如果需要创建自己的Application,那也很简单!创建一个类继承Application并在AndroidManifest.xml文件中的application标签中进行注册(只需要给application标签增加name属性,并添加自己的 Application的名字即可)。
启动Application时,系统会创建一个PID,即进程ID,所有的Activity都会在此进程上运行。那么我们在Application创建的时候初始化全局变量,同一个应用的所有Activity都可以取到这些全局变量的值,换句话说,我们在某一个Activity中改变了这些全局变量的值,那么在同一个应用的其他Activity中值就会改变。
Application对象的生命周期是整个程序中最长的,它的生命周期就等于这个程序的生命周期。因为它是全局的单例的,所以在不同的Activity,Service中获得的对象都是同一个对象。所以可以通过Application来进行一些,如:数据传递、数据共享和数据缓存等操作。
应用场景:
在Android中,可以通过继承Application类来实现应用程序级的全局变量,这种全局变量方法相对静态类更有保障,直到应用的所有Activity全部被destory掉之后才会被释放掉。
Application和Activity,Service一样是Android框架的一个系统组件,当Android程序启动时系统会创建一个Application对象,用来存储系统的一些信息。
Android系统自动会为每个程序运行时创建一个Application类的对象且只创建一个,所以Application可以说是单例(singleton)模式的一个类。
通常我们是不需要指定一个Application的,系统会自动帮我们创建,如果需要创建自己的Application,那也很简单!创建一个类继承Application并在AndroidManifest.xml文件中的application标签中进行注册(只需要给application标签增加name属性,并添加自己的 Application的名字即可)。
启动Application时,系统会创建一个PID,即进程ID,所有的Activity都会在此进程上运行。那么我们在Application创建的时候初始化全局变量,同一个应用的所有Activity都可以取到这些全局变量的值,换句话说,我们在某一个Activity中改变了这些全局变量的值,那么在同一个应用的其他Activity中值就会改变。
Application对象的生命周期是整个程序中最长的,它的生命周期就等于这个程序的生命周期。因为它是全局的单例的,所以在不同的Activity,Service中获得的对象都是同一个对象。所以可以通过Application来进行一些,如:数据传递、数据共享和数据缓存等操作。
应用场景:
在Android中,可以通过继承Application类来实现应用程序级的全局变量,这种全局变量方法相对静态类更有保障,直到应用的所有Activity全部被destory掉之后才会被释放掉。
Application 类继承自Context-->ContextWrapper;其主要包含了4个公开的方法:void onConfigrationChanged(Configration config) void onCreate() void onLowMemory() void Onterminated()。
使用Application的类的方式:注:Application中的onCreate()方法才是安卓应用程序的真正入口。
1:自定义一个类继承Application
public class CustomApplication extends Application{ private static final String VALUE = "Harvey"; private String value; @Override public void onCreate() { super.onCreate(); setValue(VALUE); // 初始化全局变量 } public void setValue(String value) { this.value = value; } public String getValue() { return value; }}2:在清单文件中注册
<application android:name="CustomApplication"></application>
1 1
- Application是Android程序的真正入口
- Android程序的真正入口Application
- Android程序的真正入口Application
- Android程序的真正入口Application
- Android程序的真正入口Application
- Android程序的真正入口Application
- Android程序的真正入口Application
- android程序的真正入口点之application
- 程序的真正入口
- 程序真正的入口
- Android 应用的真正入口 - ZygoteInit.java
- android程序的入口
- Android后台强制结束进程,Application入口或者activity回调的是哪个方法?
- c++程序真正入口函数
- Android程序的入口点
- Android程序的入口点
- 关于Android程序的入口
- android 笔记 【一个应用程序的入口 ——Application】
- iOS_视频后台播放+远程控制
- 【JavaScript】DOM基础
- 找不到或无法加载主类的原因之一
- sql to entity in 语句, top语句, exists语句的写法
- 安卓APP客户端与服务器通信
- Application是Android程序的真正入口
- 做吃等死
- 快速切换 DNS 服务器
- spark shuffle Read fetch过来的数据以ManagedBuffer形式存在时,该底层数据时在堆外内存中还是文件中,是否受memorymanager管理
- 去与留
- 模式的秘密——工厂模式
- 回调函数
- Java实现SSH模式加密原理及代码
- [leetcode] 134. Gas Station