在我的android项目中,我有ImageAdapter类,可以在其中传递应用上下文以满足进一步的需求。
public class ImageAdapter extends BaseAdapter {
private Context c;
public ImageAdapter(Context c) {
this.c = c;
}
...
}
问题是我想使ImageAdapter作为一个单例对象,以便从我的所有活动中轻松访问此类的实例。但是我不知道如何将我的活动之一中的getApplicationContext()方法中的应用程序上下文传递给ImageAdapter。那么,有什么“魔术”可以做到以下几点?
public class ImageAdapter extends BaseAdapter {
private Context c;
private static class Holder {
public static final ImageAdapter IA = new ImageAdapter();
}
private ImageAdapter() {
this.c = /* some magic here */.getApplicationContext();
}
public static ImageAdapter getInstance() {
return Holder.IA;
}
...
}
也许您还有其他一些想法可以共享ImageAdapter用于我的任何活动。我是android的新手,我对在活动之间传递数据的方式有些困惑。
我将不胜感激。
更新:2018年3月6日
使用MyApplication
实例代替Context
实例。Application
instance是单例上下文实例本身。
public class MyApplication extends Application {
private static MyApplication mContext;
@Override
public void onCreate() {
super.onCreate();
mContext = this;
}
public static MyApplication getContext() {
return mContext;
}
}
上一个答案
您可以像这样获得应用程序上下文:
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()
不要忘记在清单文件中声明应用程序:
<application
android:name=".MyApplication"
android:icon="@drawable/icon"
android:label="@string/app_name" >
问题内容: 有没有办法在Spring应用程序中静态/全局地请求ApplicationContext的副本? 假设主类启动并初始化了应用程序上下文,它是否需要通过调用堆栈将其向下传递给需要它的任何类,或者是否有一种方法可以让类要求先前创建的上下文?(我认为必须是单身人士?) 问题答案: 如果需要访问容器的对象是容器中的Bean,则只需实现BeanFactoryAware或ApplicationCon
问题内容: 我发现一个答案似乎表明我应该创建一个单独的类,并创建一个静态MyApplication对象,并创建一个get方法。然后,任何类都可以调用MyApplication.get()来检索上下文。 还有其他更清洁的方法吗?这是我的情况: 我有一个类A和一个类B。类A包含一个来自类B的对象(我们称为对象b)。在AI类中,称为“ b.play()”。但是,我得到一个空指针异常,因为类B需要将上下文
我是Spring的初学者。今天,当我在阅读Spring core文档时,我在第1.3章中发现了以下说明。Bean概述 除了包含关于如何创建特定bean的信息的bean定义外,ApplicationContext实现还允许注册(由用户)在容器外部创建的现有对象。这是通过getBeanFactory()方法访问ApplicationContext的BeanFactory来完成的,该方法返回BeanFa
问题内容: 关于这两个上下文的内容,已经有很多文章了。但是我仍然不太正确。 到目前为止,据我了解:每个实例都是其类的一个实例,这意味着某些程序员建议您尽可能频繁地使用它,以免“泄漏”任何内存。这是因为另一个this(获取Activity实例上下文)指向的Activity是每次用户倾斜手机或离开应用程序等时都将销毁的一个。显然,垃圾收集器(GC)无法捕获,因此使用了过多的内存。 .. 但是任何人都可
库中有一个从javascript(html5应用程序)调用的类。它不能是活动扩展器。该类可以访问活动和WebView对象。 是否可以从这个库类中获取onResume、on暂停和onDestroy活动事件?
我想在我的应用程序启动时发出初始化请求。然后我想在main活动中使用响应。我不想在活动中提出请求,然后在手机轮换时处理活动生命周期。 所以我在考虑从申请中获得并在那里提出请求。但是,将响应数据发送到MyLauncher活动的最佳方式是什么? 这里有“最佳实践”解决方案吗?