Android - 在应用程序启动时加载属性文件

时间:2014-11-08 15:00:48

标签: android properties launch android-context

是否有部分代码始终在应用程序启动时执行,无论活动如何,我们都可以访问上下文?

我的应用程序需要api密钥。我将它们存储在资产中的.properties文件中,并在每次需要加载时从context.getRessources().getAssets()访问此文件。

key = getKey(getContext())

我希望一旦成功访问一次就有一个静态变量存储它们。但由于我不知道他们何时会第一次访问,我需要做类似的事情

if(isKeySet()){
    key = getKey();
} else {
    setKey(getContext());
}

哪个不理想,因为我仍然需要传递一个上下文。如果我可以确保总是执行代码的一部分(访问上下文),我可以在这里加载它们以及每次后续调用

key = getKey();

1 个答案:

答案 0 :(得分:2)

您可以使用Android Application课程。它扩展了Context,是存储全局应用程序状态的基类。

public class MyApplication extends Application
{
    private static MyApplication mSingleton;

    @Override
    public void onCreate()
    {
        super.onCreate();
        mSingleton = this;
    }

    public static MyApplication getInstance() {
        return mSingleton;
    }
}

androidManifest.xml中,您需要在android:name="com.X.Y.Z.MyApplication"

中添加<application>

现在,当您的应用启动时,它将启动MyApplication.onCreate方法。

致电super.onCreate()后,您可以访问getApplicationContext()并初始化您的单身人士。