有时,在处理业务逻辑的时候,需要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();