Context 的作用、getApplicationContext()、Activity.this、 getBaseContext区别 和 Application用途
Context 的作用: 访问全局信息的。
getApplicationContext() 返回应用的上下文,生命周期是整个应用,应用摧毁它才摧毁。
Activity.this 的context 返回当前activity的上下文,属于activity ,activity 摧毁他就摧毁。
getBaseContext() 返回由构造函数指定或setBaseContext()设置的上下文。
Application使用
有时候会在多个组件之间进行数据的共享,Android提供了一种机制可以使用Context来做。
第一步,创建一个类 继承Application。
第二步,在配置文件,application中 android:name=".类名" 。通过这种方式,就自定义了Application。
此时的Application是个真正全局的上下文对象。
第三步,在代码中使用,通过getApplicationContext() 就可以获得全局的对象。
Application生命周期
1 public class ZBApplication extends Application { 2 3 @Override 4 public void onCreate() { 5 super.onCreate(); 6 // 创建的时候会被执行。 会比启动的Activity的onCreate()先执行。 7 } 8 9 @Override 10 public void onTerminate() { 11 super.onTerminate(); 12 // 结束,一般不会执行,只会在模拟还行下执行 13 } 14 15 @Override 16 public void onLowMemory() { 17 super.onLowMemory(); 18 // 在低内存的时候会执行。 19 } 20 21 @Override 22 public void onTrimMemory(int level) { 23 super.onTrimMemory(level); 24 // 程序在进行内存清理的时候会执行。 25 } 26 27 @Override 28 public void onConfigurationChanged(Configuration newConfig) { 29 super.onConfigurationChanged(newConfig); 30 // 发生改变的时候会调用。 31 } 32 }