在我的应用程序中,我有登录 Activity 。它有一个静态变量用户名,它将分配给用户输入的用户名值。 Loginactivity 启动 Activity A,A 启动 B。在 A 中,我使用变量 Loginactivity.username。
现在由于 B 中的一些错误,应用程序崩溃了。当我按下强制关闭时,应用程序重新启动, Activity A 是当前 Activity 。在 Activity A 中,我使用静态变量 Loginactivity.username。我看到崩溃后这个变量得到它的初始值,它是空字符串 "";
为什么会这样?你能解释一下这种行为吗?那么当应用程序崩溃时,堆栈中的所有 Activity 都重新启动了吗?我看到没有调用 Loginactivity 的 oncreate。那么静态变量值是如何改变的呢?
最佳答案
是的,当应用程序崩溃时,此应用程序的 jvm 会重新启动,您的类会重新加载,并且您会丢失所有静态变量和实例变量。
解决方案是消除崩溃原因。 :)
关于应用程序崩溃时的android静态变量行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9971527/