每一个活动都是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
时间: 2024-10-13 18:50:13