在任意位置获取应用程序Context
转自:http://bbs.51cto.com/thread-968046-1.html
刚刚在上网的时候看到这样一篇文章,感觉可以和大家分享分享的。通常获取一个Context我都会自己写一个类,通过set的方式来设置context,并通过获取这个类的静态方法来获取context。刚刚在网络看到的这篇其实差不多,不过它是直接继承Application来获取context的。具体如下:
Android程序中访问资源时需要提供Context,一般来说只有在各种component中(Activity, Provider等等)才能方便的使用api来获取Context,如:
1. MyApplication.java
2. 然后在manifest中<application>中加入
3.使用
在任意类中使用
刚刚在上网的时候看到这样一篇文章,感觉可以和大家分享分享的。通常获取一个Context我都会自己写一个类,通过set的方式来设置context,并通过获取这个类的静态方法来获取context。刚刚在网络看到的这篇其实差不多,不过它是直接继承Application来获取context的。具体如下:
Android程序中访问资源时需要提供Context,一般来说只有在各种component中(Activity, Provider等等)才能方便的使用api来获取Context,如:
this.getApplicationContext();
this.getApplication();等, 而在某些工具类中要获取就很麻烦了。为此,我们可以自定义一个Application类来实现这种功能。
1. MyApplication.java
import android.app.Application; public class MyApplication extends Application { private static MyApplication instance; public static MyApplication getInstance() { return instance; } @Override public void onCreate() { // TODO Auto-generated method stub super.onCreate(); instance = this; } }
2. 然后在manifest中<application>中加入
name="mypackage.MyApplication"
3.使用
在任意类中使用
MyApplication.getInstance();来获取应用程序Context