Android开发之全局获取Context的技巧

转自《第一行代码-Android》进阶篇

这本书对于入门来说确实很棒,很简单明了的介绍了Android开发中涉及到的方方面面,对我的帮助很大,同时记录一些该书中一些对我以后开发有用的东西,以方便使用。

Android提供了一个Application类,每当应用程序启动的时候,系统就会自动将这个类进行初始化。而我们可以定制一个自己的Application类,已便于管理程序内一些全局的状态信息,比如全局Context。

定制一个自己的Application,首先需要创建一个MyApplication类继承Application。

 1 public class MyApplication extends Application {
 2     
 3     private static Context context;
 4 
 5     @Override
 6     public void onCreate() {
 7         // TODO Auto-generated method stub
 8         super.onCreate();
 9         context=getApplicationContext();
10     }
11     
12     public static Context getContext() {
13         return context;
14     }
15 }

重写了父类的onCreate()方法,并通过调用getApplicationContext()方法得到了一个应用程序级别的Context,然后又提供了一个静态的getContext()方法,在这里将刚才获取到的Context返回。

在AndroidMainifest文件中的<application>标签下进行指定

 1 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
 2     package="com.example.test"
 3     android:versionCode="1"
 4     android:versionName="1.0" >
 5     ......
 6     <application
 7         android:name="com.example.test.MyApplication"
 8         ......>
 9         ......
10         </activity>
11     </application>
12 </manifest>

这样我们就已经实现了一种全局获取Context的机制,之后不管你想在项目的任何地方使用Contenxt,只需要调用一下MyApplication.getContext()方法就可以了。

原文地址:https://www.cnblogs.com/liyiran/p/4633559.html