什么是application类?
application是维护应用全局状态的基类,应用进程启动时android系统会创建application类并调用类的onCreate()函数,application类是context类的子类
目录
- 自定义application
- application的生命周期
- application的回调函数
- 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对象的方法保存需要的全局信息