【问题标题】:Android - Pass global information to libraryAndroid - 将全局信息传递到库
【发布时间】:2016-10-12 12:15:15
【问题描述】:

我正在创建一个主要的 android 项目,该项目使用带有一些实用程序类的类库。这个类库会被其他项目访问,所以会有一些配置信息需要从项目传递到类库中。这个信息对于整个项目都是一样的,所以我想只传递一次,而不是每次调用函数时都作为参数传递。

如何将这些全局信息传递给类库?

这个问题 (Android main project with library project - how to pass setting between projects) 建议创建一个 setter 方法来传递信息,但这需要一个始终处于活动状态的库实例。我想过创建一个静态属性,但我听说在某些情况下(当应用程序被交换到另一个应用程序然后又交换回来时),可以重新创建类并且静态值会丢失。

【问题讨论】:

  • 我记得曾经读过你可以从 Gradle 将变量注入应用程序。如果你只有配置参数,那么使用构建工具会比硬编码到应用程序中更好

标签: android class-library


【解决方案1】:

你可以使用 manifest 文件,当 sdk 需要一个 api 密钥时,它通常存储在这个地方,所以你可以使用相同的想法。

在您的清单中:

<meta-data android:name="my_test_metagadata" android:value="testValue" />

在您的 java 文件中:

ApplicationInfo ai = getPackageManager().getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);
Bundle bundle = ai.metaData;
String myApiKey = bundle.getString("my_test_metagadata");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-24
    • 1970-01-01
    • 2014-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多