在任意位置获取应用程序Context

转自:http://bbs.51cto.com/thread-968046-1.html

刚刚在上网的时候看到这样一篇文章,感觉可以和大家分享分享的。通常获取一个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



posted on 2013-04-15 15:37  封起De日子  阅读(173)  评论(0编辑  收藏  举报

导航