经常需要用到系统的一些功能必须传递Context对象, 往往有时候不方便传递当前的Context或者即使能够传递Context也非常麻烦,比如: AudioManager aduioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); 这个时候如果传递当前的Activity, 那么切换Activity后,可能会有影响。所以需要获取全局的Context,在任何需要的时候使用。
实现如下:
1 先定义一个继承Application的类,取名AppContext
2 上代码:
public class AppContext extends android.app.Application
{
private static Context appContext;
@Override
public void onCreate()
{
super.onCreate();
appContext = getApplicationContext();
}
public static Context getAppContext()
{
return appContext;
}
@Override
public void onLowMemory()
{
super.onLowMemory();
}
}
3 mainfest xml中在Application标签中添加 Android:name属性
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:name=".AppContext" >
<activity
android:name=".ApplicationDemoActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
4 需要获取Context时, 只需要调用 AppContext.getAppContext() 即可