1

在A类中使用变量v,但是当我去B类然后返回A类时,值会改变。当我回到A类时,值是初始值。我们可以通过添加到final变量或static使其保持其值来修复吗?

在此处输入图像描述

谢谢

4

1 回答 1

3

如果您在谈论Android的Activity类,则解决方案是使用static,因为每次启动新活动时,启动活动都会“暂停”(onPause()调用其方法)。当在新启动的 'back' 按钮被按下时Activity,堆栈中的前一个活动被恢复并onResume()调用它的方法。

然而,static变量只初始化一次。此外,该变量的单个副本由类/活动的所有实例共享,因此使用静态的另一个好处是您可以修改任何其他类的值。

在您的情况下,您可能正在方法中初始化非静态变量onResume(),因此从另一个活动返回会重新初始化其值。

在使用普通 Java 类的另一个类中的函数后返回控件时,不应发生同样的情况。

于 2012-07-19T08:17:24.773 回答