Aplication的意义和生命周期,与Context的关系,以及关于Aplication和Context相关问题的记录和解决办法

时间:2023-03-08 22:16:39
Aplication的意义和生命周期,与Context的关系,以及关于Aplication和Context相关问题的记录和解决办法

Context详解地址链接:

http://blog.csdn.net/qinjuning/article/details/7310620

Application是一个应用中有且仅有一个的全局共享变量类,在这个全局变量中可以存储一定的数据,用于整个应用中的异步沟通和数据交互。、

自定义Application的方法:

1.自定义一个class,假如取名app,继承Application

2.在manifests文件中,对于Application声明一个name标签,那么这个标签的名字就可以改为android:name=".app",进行此步骤后,应用将使用自定义的Application的类

3.这个全局的变量对象,可以在任何地方通过使用getApplicationContext()方法获得

注:这个application的class中不能写具体的执行步骤,只能声明属性和提供修改和获得属性的方法

Application的生命周期跟整个程序的状态息息相关,具体体现在几个函数:

public class App extends Application {

    @Override
public void onCreate() {
super.onCreate();      // 程序创建的时候执行
}
@Override
public void onTerminate() {
super.onTerminate();    // 程序终止的时候执行
}
@Override
public void onLowMemory() {
super.onLowMemory();  // 低内存的时候执行
}
@Override
public void onTrimMemory(int level) {
  super.onTrimMemory(level);   // 程序在内存清理的时候执行
}
@Override
public void onConfigurationChanged(Configuration newConfig) {super.onConfigurationChanged(newConfig);
} }

而Context是沟通整个程序的桥梁,

每个重要的组件都会对应一个Context对象,在Context中封装了许多抽象的方法,

通过层层继承,在不同的位置实现抽象的方法,使得Context中的抽象方法可以沟通各个组件,其中就包括了startActivity(Intent i)方法

ps:

Intent是一个用于沟通各个组件的对象,其中封装了一些用户携带信息的属性,但调用context中的方法沟通不同的组件的时候,Intent中的内容自然就实现了跨组件的传递。

自己遇到的Context相关问题收集:

1.新建某些对象的时候,必须要有context对象作为参数,但并没有可以用来使用的context对象时,如何为该新建的方法提供context参数

使用应用程序的context接口:

class A = new class(getApplicationContext());