您的位置:首页 > 移动开发 > Android开发

android 调用全局的Context

2016-04-05 18:39 351 查看
一、我们的应用在启动的时候都会调用Application这个类,这个类在AndroidManifes.xml中是默认的

<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
>
<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>


二、这个Application类是单例的,也就是说我们可以自己写个Application(比如名为:MainApplication)类,来代替默认的Applicaiton,这个类可以保存应用的全局变量,我们可以定义一个全局的Context.供外部调用.用法如下:

package com.tutor.application;

import android.app.Application;
import android.content.Context;

public class MainApplication extends Application {

/**
* 全局的上下文.
*/
private static Context mContext;

@Override
public void onCreate() {
super.onCreate();

mContext = getApplicationContext();

}

/**获取Context.
* @return
*/
public static Context getContext(){
return mContext;
}

@Override
public void onLowMemory() {
super.onLowMemory();
}

}



三、我们需要在AndroidMainifest.xml把MainApplication注册进去(第10行代码):

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.tutor.application"
android:versionCode="1"
android:versionName="1.0" >

<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:name=".MainApplication" >
<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>

</manifest>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: