有时,在处理业务逻辑的时候,需要Context对象,但在某些情况下,并非容易获取,这时就需要一些巧妙的手段来管理Context。

    在Android中,提供了一个类Application,当应用程序启动的时候,系统会自动将这个类进行初始化,所以我们可以编写自己的Application类以管理一些全局的状态信息。

     在这里,以获取全局Context为例。

1、编写自己的Application类

1. package com.example.testapplication;  
2.   
3. import android.app.Application;  
4. import android.content.Context;  
5.   
6. /** 
7.  * 编写自己的Application,管理全局状态信息,比如Context 
8.  * @author yy 
9.  * 
10.  */  
11. public class MyApplication extends Application {  
12. private static Context context;  
13.       
14. @Override  
15. public void onCreate() {  
16. //获取Context  
17.         context = getApplicationContext();  
18.     }  
19.       
20. //返回  
21. public static Context getContextObject(){  
22. return context;  
23.     }  
24. }

    接着,需要告知系统,当程序启动的时候应该初始化MyApplication类,而不是默认的Application类。

 

2、修改AndroidManifest.xml文件

     修改application属性:

1. <application  
2. android:name="com.example.testapplication.MyApplication"  
3.      ....  
4. >

    这样就实现了全局获取Context的机制。

 

3、使用

     无论在任何地方使用,都可以使用如下获取Context对象:

1. MyApplication.getContextObject();