【问题标题】:getApplicationContext() in a singleton class via android?通过android在单例类中获取应用程序上下文()?
【发布时间】:2015-09-29 13:14:10
【问题描述】:

伙计们,我这里有一些代码,但我不太明白它的逻辑。它是 一个单例类,最终将持有犯罪的 ArrayList。我要查找关于单例的教程,这样我就不必给大家带来麻烦了,但我仍然不明白 android 中“上下文”的概念,这让我现在很反感,例如

public class CrimeLab 
{
 private static CrimeLab sCrimeLab;

 private context mAppContext;

 private CrimeLab(Context mAppContext)
 {
 this.mAppContext = mAppContext;
 }

 public static CrimeLab get(Context c)
 {
 if(sCrimeLab == null){

 sCrimeLab = new CrimeLab(C.getApplicationContext()); 

 }
 return sCrimeLab;
 }
}

在我称之为 'mCrimes = CrimeLab.get(getActivity()).getCrimes(); 的活动中它将在 listView 中保存犯罪片段,我知道我正在将当前活动传递给 CrimeLab 单例类,但这样做的目的到底是什么?这可能是一个模糊的问题,尤其是在没有其他代码的情况下,但是看看这个你们都推断出什么?

【问题讨论】:

  • 我刚刚做了@AndyTurner

标签: java android fragment android-context


【解决方案1】:

上下文是应用程序中的“你在哪里”。它用于获取特定于环境的信息,并且经常被传递以提供可能需要的信息。在您的情况下,可能是运行此代码的活动。更多信息可以在 Android 参考页面http://developer.android.com/reference/android/content/Context.html

上找到

【讨论】:

  • 但为什么我将活动传递给单例?
  • 我不能说你是否严格“需要”传递它,但它不会受到伤害。这样,如果 Android 的任何后台进程或库方法需要访问某些环境变量,它们就拥有它。更不用说以后您是否需要访问特定于活动的某些内容,它已经存在了。
猜你喜欢
  • 2014-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-31
相关资源
最近更新 更多