gpt4 book ai didi

java - Android 应用程序创建不在 Activity 中的内部文件

转载 作者:行者123 更新时间:2023-11-30 02:39:19 26 4
gpt4 key购买 nike

我正在尝试在 Android 应用程序中创建一个内部文件。我已经生成了适用于 java 的代码,但为了创建内部文件,我相信我必须有上下文才能这样做。

示例:文件 file = new File(Context.getFilesDir(), "somefile.txt");

我遇到的问题是,文件创建和检查是否已创建是在我创建的单例类中维护的。使用以下内容时

示例:文件 file = new File("somefile.txt");

一切似乎都可以编译和工作,但在关闭应用程序后,文件似乎没有创建。这使我相信我需要使用给出的第一个示例的应用程序目录。问题是如何在单个类中获取应用程序上下文?

最佳答案

The problem is how do I get the applications context within a single class?

来自 Android Docs :

There is normally no need to subclass Application. In most situation, static singletons can provide the same functionality in a more modular way. If your singleton needs a global context (for example to register broadcast receivers), the function to retrieve it can be given a Context which internally uses Context.getApplicationContext() when first constructing the singleton.

像这样创建你的单例:

// ...
private Context mAppContext = null;
private static MySingleton mSingleton = null;
// ...

private MySingleton(Context context) {
mAppContext = context;
// ... other initialization
}

public static MySingleton get(Context context) {
if (mSingleton == null) {
/*
* Get the global application context since this is an
* application-wide singleton
*/
mSingleton = new MySingleton(
context.getApplicationContext());
}
return mSingleton;
}

每次从任何 Activity 中获取单例时,您都可以访问全局应用程序上下文。

您可以使用它在单例中创建文件,例如:

public void createFile(String filename) {
File file = new File(mAppContext.getFilesDir(), filename);
}

或者您可以使用其他方式mentioned here

关于java - Android 应用程序创建不在 Activity 中的内部文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26002419/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com