Android 通过 Application 设置全局变量

Android 可以通过新建自己的 Application 类来设置全局变量



目录

1. Application 类简介

2. 新建自己的 Application 类

3. 在 AndroidManifest.xml 文件中添加你新建的 Application 类

4. 调用你的 Application 类



1. Application 类简介

这里参考大神的简介:https://www.cnblogs.com/renqingping/archive/2012/10/24/Application.html

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掉之后才会被释放掉。



2. 新建自己的 Application 类

    继承 Application 类并写 set 和 get 函数

package com.example.lilihan.water_quality;

import android.app.Application;

/**
 * Created by lilihan on 2018/1/25.
 */

public class MyApplication extends Application{
    private int choice = 1;
    private String title = "历史水质数据";

    @Override
    public void onCreate(){
        super.onCreate();
    }

    public void setChoice(int choice){
        this.choice = choice;
    }
    public void setTitle(String title) { this.title = title; }

    public int getChoice(){
        return this.choice;
    }
    public String getTitle() { return this.title; }
}


3. 在 AndroidManifest.xml 文件中添加你新建的 Application 类

<application
    android:name=".MyApplication"


4. 调用你的 Application 类

    先声明对象:MyApplication myApp;

    初始化:myApp = (MyApplication) getApplication();

    调用成员函数:myApp.getChoice(); 或者 myApp.setChoice(2);

    注意不要:MyApplication myApp = (MyApplication) getApplication();


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值