2 qianjinjin2011 qianjinjin2011 于 2018.03.05 14:27 提问

Android中获得上下文的静态方法 160C

如何使用静态方法获取当前的 Context实例?
我不想每次 Context实例改变时都保存一次,请求大师们帮忙寻找解决方法。谢谢!

8个回答

lifeifei1245
lifeifei1245   2018.03.05 14:34

静态方法中,把context当参数传入就好了呀

caozhy
caozhy 回复出售C币Q155132206: 没错,已经举报,建议没收所有积分+封号。
4 个月之前 回复
qq_40744120
qq_40744120 回复出售C币Q155132206: ???
4 个月之前 回复
showbo
showbo 找这个id买币的摊大事了,等着币被清吧,哈哈,抢生意。。
4 个月之前 回复
davehuhudave
davehuhudave   2018.03.05 15:07

方法大致可以分为两种:一是传递Context参数,二是调用全局的Context.
http://www.jb51.net/article/97730.htm

u013394202
u013394202   2018.03.05 15:55

可以写一个Application的单例 每次要使用的时候获取Application的instance.

baidu_30233079
baidu_30233079   2018.03.05 16:11

可以写一个Application的单例 每次要使用的时候获取Application的instance
public class MyApplication extends Application {
public static MyApplication instaApplication = null;
public static Context appContext = null;

@Override
public void onCreate() {
    super.onCreate();
    instaApplication = this;
    appContext = getApplicationContext();
    }
    }

    manifest.xml中
        <application
    android:name="com.xxx.MyApplication"
    这样完成后appContext和instaApplication都可以作为你的全局context用
qq_33756493
qq_33756493   Rxr 2018.03.05 18:30

使用单例模式就可以了,网上一大堆

yan072201
yan072201   2018.03.06 10:28

在自定义的application中定义一个静态Context,然后将application的 context 赋值给他,这样在整个项目工程中都可以静态引用这个context。
一些引用需要的是Activity,而不是Context就只能通过方法参数形式传递管理

qq_20330595
qq_20330595   2018.03.06 17:55
  public class AppManger {
    private static AppManger appManger=null;

    public Context getContext() {
        return context;
    }

    public static AppManger getAppManger() {
        if (appManger == null) throw new RuntimeException("请先初始化AppManger");
        return appManger;
    }

    private Context context;

    public static void initAppManger(Context context) {
        if (appManger == null) new AppManger(context);
    }

    private AppManger(Context context) {
        this.context = context;
    }
}

 AppManger.initAppManger(this)/*在Application中初始化一次就不用管了*/

 AppManger.getAppManger().context/*任何地方都可以调用*/
cxfidc01
cxfidc01   2018.03.10 12:50

在Application里面定义一个静态的参数
public static Context application;

在onCreate里面对它进行赋值
application = getApplicationContext();

其他地方直接调用就行
BaseApp.application

图片说明

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!