0

我正在开发一个 Android 应用程序,并且正在使用我编写的库。这个库有一个包含一些静态字段的类。其中之一是 API 密钥。我的库中的其他类使用此密钥来调用远程服务。

我在我的主 Activity 上初始化一次 API 密钥,当它被创建并且 savedInstanceState 为空时。

我的问题在于其他活动,因为他们有时在使用我的库进行调用时使用正确的 API 密钥,有时却没有。好像没有设置 API 密钥。

特别是我从我的偏好活动中调用的一项活动总是失败,因为未设置 API 密钥。

不是像在普通 Java 应用程序上那样跨活动维护静态字段吗?我认为对于特定的 jvm 实例,所有静态字段都被保留。Android 平台是否为新的活动使用新的 jvm 实例?

4

2 回答 2

1

请阅读:

http://developer.android.com/guide/topics/fundamentals.html#procthread

您的应用程序正在一个进程中运行。该进程在后台时可能需要被终止。您的应用程序必须在后台正确保存任何适当的状态(通过前 Activity.onSaveInstanceState())和/或在稍后在新进程中重新启动时重建其状态。

于 2010-09-24T03:16:59.197 回答
0

您是否以直接或间接的方式访问静态字段?其他活动是否与 Api 密钥混淆?如果是这样,您应该synchronized在访问它之前

于 2010-09-23T23:53:06.833 回答