3

我一直在寻找解决方案,但正在获取 SharedPreferences 和 SQLite 数据库的解决方案。我必须存储一个 URL,我的 Android 应用程序将访问该 URL 以获取一些数据。我喜欢将其保持为可配置的,以防我可以更改 URL 并将应用程序与另一组数据一起使用。

如果我使用 strings.xml,如果我添加对其他语言的支持,是否需要重复相同的操作?

为了存储在 SharedPreferences 中,我需要将其存储在某个地方,直到安装应用程序才能将其保存在那里。

为此使用 SQLite 数据库似乎有些牵强?

我认为基本的事情是将它存储在一个常量类中,但我不确定这是否是正确的方法。

有人可以提出更好的解决方案吗?

4

3 回答 3

1

在我们的应用程序中,我们将所有静态配置作为元数据属性存储在 AndroidManifest.xml 中。

文档的链接可以比我更好地解释它:

http://developer.android.com/guide/topics/manifest/meta-data-element.html

基本上:

<meta-data android:name="api.url" android:value="http://api.some-api.com"/>

然后假设元数据在应用程序级别,您可以使用以下方法获取它:

        Bundle data = context.getPackageManager().getApplicationInfo(
            context.getPackageName(),
            PackageManager.GET_META_DATA).metaData;

        String apiUrl = data.getString("api.url");
于 2013-10-08T13:01:51.843 回答
1

您没有指出该网址应保持私密。所以,你可能忽略了显而易见的事情。为什么不简单地创建一个与应用程序一起安装的“配置”文件?这可以通过遵循此处的方法来实现。安装后,您的应用程序可以简单地读取它并进行相应的处理。

于 2013-10-08T13:15:04.163 回答
0

我会将 URL 存储在常量中。除非您需要在版本之间更改它。如果您想将其存储在 XML 中,则将其放入donottranslate.xml中,这样 Lint 就不会抱怨了。

于 2013-10-08T13:00:28.880 回答