如何在Android中获取当前运行的上下文?

时间:2012-06-25 10:31:14

标签: android

我想在android中获取当前运行的上下文,我试图使用:

<application android:name="com.xyz.MyApplication">

</application>

public class MyApplication extends Application
{
    private static Context context;

    public void onCreate()
    {
        super.onCreate();
        MyApplication.context = getApplicationContext();
    }

    public static Context getAppContext() 
    {
        return MyApplication.context;
    }
}

当我尝试使用MyApplication.getAppContext()时,它会给我错误

  

AndroidRuntime(14421):android.view.WindowManager $ BadTokenException:无法添加窗口 - 令牌null不适用于应用程序

2 个答案:

答案 0 :(得分:15)

这对我有用:

public class MyApplication extends Application {

private static Context mContext;

@Override
public void onCreate() {
    super.onCreate();
    mContext = getApplicationContext();
}
public static Context getContext() {
    return mContext;
}
}

您只需在应用的任何部分拨打MyApplication.getContext()

我假设应用程序XML标记位于manifest.xml

<application
    android:name=".MyApplication"
    android:icon="@drawable/icon"
    android:label="@string/app_name" >

您不需要创建任何Application类实例,它将在您启动应用程序之前创建。

答案 1 :(得分:0)

如果你想获得Application类的实例,你可以使用

MyApplication Obj = ((MyApplication )getApplicationContext());

如果上下文getApplicationContext()本身就足够了。