关闭

Application是Android程序的真正入口

971人阅读 评论(1) 收藏 举报
分类:
 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 类继承自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
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

android 笔记 【一个应用程序的入口 ——Application】

Application android应用程序的入口 Application和Actovotu,Service一样是android框架的一个系统组件,当android程序启动时系统会创建一个 app...
  • zcmain
  • zcmain
  • 2013-11-07 16:52
  • 2790

一个APP两个程序主入口,两个图标,互不干扰

在做项目的过程中碰到了一个需求,就是只需要两个Activity,但是两个Activity又互相不需要跳转,通过后台服务发送的广播来启动,这个时候就需要在清单文件中做文章了! <application ...
  • dadai_
  • dadai_
  • 2015-10-30 14:19
  • 2653

Android中Application类用法(整个程序的全局变量,即单例),类似于session

以下内容转载自:http://www.cnblogs.com/renqingping/archive/2012/10/24/Application.html,亲鉴,正确使用 Applicatio...
  • fengyunjia
  • fengyunjia
  • 2015-07-18 16:10
  • 1423

Android开发框架搭建——应用程序的入口Application配置(一)

大家都知道每一个Android程序都要配置一个application,今天我们就来了解一下application的这层神秘的面纱吧。 什么是Application Application的生命周期 A...
  • yanglei0917
  • yanglei0917
  • 2017-03-17 10:32
  • 307

【Pomelo源码分析】2016-09-21 程序入口(app.js, pomelo.js, application.js)

Pomelo程序入口,app.js、pomelo.js、application.js文件的源码分析
  • u010334580
  • u010334580
  • 2016-09-21 16:34
  • 627

程序的真正入口

VC++开发的程序,在调试时总是从main或者WinMain函数开始,这就容易让人误会它们是程序的第一条指令执行处,这个认识其实是错误的main和WinMain也是一个函数,也需要一个调用者,在它们被...
  • riverking123
  • riverking123
  • 2013-02-25 20:36
  • 259

c++程序真正入口函数

c++程序真正入口函数                我们以前写windows控制台程序时,都是先写个main()函数,写windows窗口程序时,首先要写winmain()函数,然...
  • DemonDe
  • DemonDe
  • 2016-12-19 23:18
  • 3094

Android 应用的真正入口 - ZygoteInit.java

从源码位置上来讲 源码中 ActivityThread的位置: /frameworks/base/core/java/android/app/ActivityThread.java 可以看到是位于 a...
  • CL18652469346
  • CL18652469346
  • 2016-12-14 16:43
  • 581

关于android应用程序的入口

关于android应用程序的入口     android应用程序,由一到多个Activity组成.每个Activity没有很紧密的联系,因为我们可以在自己的程序中调用其它Activity,特...
  • autumn20080101
  • autumn20080101
  • 2016-03-07 15:21
  • 212

Android一个应用程序设置两个入口

有些时候,我们需要为一个应用(apk)设置多个执行入口,也就是安装后,出现多个图标,各个icon是同一apk不同模块的入口,并且,各个模块运行在不同的进程中。例如系统的通讯录和通话记录就是同一个应用的...
  • ice_eyes
  • ice_eyes
  • 2016-10-26 22:14
  • 1170
    个人资料
    • 访问:8981次
    • 积分:251
    • 等级:
    • 排名:千里之外
    • 原创:16篇
    • 转载:3篇
    • 译文:0篇
    • 评论:2条
    文章分类
    文章存档
    最新评论