为什么文件流需要上下文?

时间:2012-06-05 10:12:20

标签: android android-context

过去几个月我一直在为我的公司开发一个库,并且每当我将数据存储或加载到内部存储时,文件流似乎都需要上下文这一事实让我感到恼火。

我设计的库就像这样工作:

  1. 单例类用于提供和处理钥匙串(包含app密钥和设备ID)和authinfo(用户和密码)
  2. 每当发出调用Web服务的请求时,调用类将尝试获取单例类的实例并通过它获取keychain和auth信息,如下所示:

    SingletonClass.getInstance()。getCredentials(Context ctx);

  3. 结果是我需要不断提供调用活动的上下文,因为我的大部分库都围绕调用带有凭据和设备ID作为参数的API。

    我具体提到这些方面:

    ....
              FileOutputStream fos = ctx.openFileOutput(filename,                      
                       Context.MODE_PRIVATE);
              fos.write(buf);
              fos.close(); 
    ....
    

    我很困惑为什么需要调用活动的特定上下文。任何帮助是极大的赞赏。还有另一种解决这个设计问题的方法吗?

2 个答案:

答案 0 :(得分:0)

文件存储API由Context类提供。 所以你需要它。

答案 1 :(得分:0)

应用程序上下文应该适用于此 - 您可以考虑使用此方法:Using Application context everywhere?这样您就可以轻松获取应用程序上下文而无需传递它。