Android application类

Android Application类是维护应用全局状态的基类,当应用启动时,系统会创建Application并调用onCreate()。通过自定义Application,可以实现全局共享变量和初始化全应用所需服务。本文详细介绍了如何自定义Application,其生命周期,回调函数,以及如何利用Application对象进行全局状态管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是application类?

application是维护应用全局状态的基类,应用进程启动时android系统会创建application类并调用类的onCreate()函数,application类是context类的子类

目录

  1. 自定义application
  2. application的生命周期
  3. application的回调函数 
  4. application对象的作用 

1、自定义application

  • 新建类继承application类
  • application标签下添加name属性为类名  name:类名
  • 在activity中通过getApplication(),获取application类子类

创建类继承application

public class Apl extends Application

public class Apl extends Application {
    public String getAbc() {
        return abc;
    }

    public void setAbc(String abc) {
        this.abc = abc;
    }
    String abc;

    /*
    Aplication创建时被调用,可以在该方法里进行一些初始化操作
     */
    @Override
    public void onCreate() {
        super.onCreate();
    }

    /*
    系统配置发生变更 的时候被调用 如:屏幕方向更改 、系统语言更改
     */
    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
    }
    /*
    系统内存吃紧时被调用,用于释放内存
     */
    @Override
    public void onLowMemory() {
        super.onLowMemory();
    }
}

application标签下添加属性:

android:name=".Apl"
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.moxuan.test">
    
    <application
        android:name=".Apl"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

 activity里获取application

 Apl apl= (Apl) getApplication();

public class MainActivity extends AppCompatActivity {
    private TextView abd;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Apl apl= (Apl) getApplication();
        //Apl apl=new Apl();
        apl.setAbc("123");
        abd = (TextView) findViewById(R.id.abd);
        abd.setText(apl.getAbc());
        Application a=new Application();
    }
}

 

2、application的生命周期

从应用进程启动到应用进程结束,生命周期 由onDestory()管理;

3、application的回调函数 

application的回调函数运行于UI线程(主线程),不要在回调函数注册UI
常见回调函数:

  • onCreate():application创建时被调用,全局
  • onConfigurationChanged():系统配置发生变更 的时候被调用 如:屏幕方向更改 、系统语言更改
  • onLowMemory():系统内存吃紧时被调用,用于释放内存

4、application对象的作用 

共享全局状态 (也可以用 静态单例实现)
初始化全应用所需服务 

  • 创建类 继承 application对象
  • application标签下添加name属性为类名  name:类名
  • 定义需要的全局变量
  • 在activity界面获取application对象  application对象  对象名=getApplication();
  • 调用application对象的方法保存需要的全局信息
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值