全局获取Conrtext

每一个活动都是Context的对象,当在普通类中用到Context时(如弹出Toast、启动活动、发送广播等)该如何获取呢?

解决方法:Android提供了一个Application类,在应用程序启动时,系统会自动对该类进行初始化。为了管理程序内全局的状态信息如全局Context,可以定制自己的Application类。

1、创建自己的Application类

 1 public class MyApplication extends Application {
 2     private static Context context;
 3 
 4     @Override
 5     public void onCreate() {
 6         super.onCreate();
 7         context = getApplicationContext();
 8     }
 9     public static Context getContext(){
10         return context;
11     }
12 }

2、让系统启动时初始化自己的Application类,在AndroidMainfest.xml文件中<application>标签中进行指定

<application
        android:name=".MyApplication"//最好加上完整的包名,不然系统找不到该类
</application>

3、测试:在一个工具类中使用该类,成功显示Toast

//测试MyApplication
        Toast.makeText(MyApplication.getContext(),"MyApplication is working!",Toast.LENGTH_SHORT).show();

4、没有一个项目只能配置一个Application,如果需创建多个Application,在MyApplication中的onCreat()方法中对其他Application类初始化即可。如图:

 5、笔记来源:第一行代码(13章全局获取Context的技巧)

原文地址:https://www.cnblogs.com/cydqqq/p/11205708.html