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());