Java 通过android在单例类中设置getApplicationContext()?

Java 通过android在单例类中设置getApplicationContext()?,java,android,fragment,android-context,Java,Android,Fragment,Android Context,我这里有一些代码,但我不太明白它的逻辑。它是 最终将持有犯罪列表的单身类。我将查找有关singleton的教程,这样我就不必对你们所有人都进行调试,但我仍然不理解android中“上下文”的概念,这让我现在很反感 public class CrimeLab { private static CrimeLab sCrimeLab; private context mAppContext; private CrimeLab(Context mAppContext) { this.mA

我这里有一些代码,但我不太明白它的逻辑。它是 最终将持有犯罪列表的单身类。我将查找有关singleton的教程,这样我就不必对你们所有人都进行调试,但我仍然不理解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.getActivity.getCrimes;我知道我正在将当前的活动传递到CrimeLab singleton类中,但这到底是为了什么?这可能是一个模糊的问题,特别是对于代码的其余部分,但只要看看这个,你们都能推断出什么?

上下文就是你们在应用程序中的位置。它用于获取特定于环境的信息,并经常被传递以提供可能需要的信息。在您的情况下,很可能是运行此代码的活动。在Android参考页面上可以找到更多信息

我刚刚做了@AndyTurner,但为什么我要将活动传递给singleton?我不能说你是否需要严格地传递它,但这并不有害。这样,如果Android的任何后台进程或库方法需要访问某个环境变量,它们都可以访问。更不用说,如果以后您需要访问特定于活动的内容,它已经存在了。