我正在开发一个Android应用程序,我正在使用我写的库。该库有一个包含一些静态字段的类。其中一个是API密钥。我的库中的其他类使用此密钥来对远程服务进行调用。
我在创建主Activity时初始化一次API密钥,并且savedInstanceState为null。
我的问题在于其他活动,因为他们在使用我的库进行调用时有时会使用正确的API密钥,有时他们却没有。好像没有设置API密钥。
特别是我从我的首选项活动调用的一个活动总是因为未设置API密钥而失败。
不是像普通Java应用程序那样在活动中维护静态字段吗?我认为对于特定的jvm实例,所有静态字段都会被保留。 Android平台是否为新活动使用新的jvm实例?
答案 0 :(得分:1)
请阅读:
http://developer.android.com/guide/topics/fundamentals.html#procthread
您的应用正在运行中。该过程可能需要在后台处理时被杀死。你的应用程序必须正确保存适当的状态,因为它在后台运行(通过ex.Export.onSaveInstanceState())和/或在以后重新启动新进程时重建其状态。
答案 1 :(得分:0)
您是以直接还是间接方式访问静态字段?其他活动是否与Api密钥混淆?如果是这样,您应该在访问之前synchronized