如何使用静态方法获取当前的 Context实例?
我不想每次 Context实例改变时都保存一次,请求大师们帮忙寻找解决方法。谢谢!
静态方法中,把context当参数传入就好了呀
方法大致可以分为两种:一是传递Context参数,二是调用全局的Context.
http://www.jb51.net/article/97730.htm
可以写一个Application的单例 每次要使用的时候获取Application的instance.
可以写一个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用
使用单例模式就可以了,网上一大堆
在自定义的application中定义一个静态Context,然后将application的 context 赋值给他,这样在整个项目工程中都可以静态引用这个context。
一些引用需要的是Activity,而不是Context就只能通过方法参数形式传递管理
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/*任何地方都可以调用*/
在Application里面定义一个静态的参数
public static Context application;
在onCreate里面对它进行赋值
application = getApplicationContext();
其他地方直接调用就行
BaseApp.application