我在MainActivity类中声明了一个静态成员,如下所示:
public class MainActivity extends Activity { public static int logNum = 0; ...}
我在其他方法中递增此变量值.
奇怪的是,当我关闭这个应用程序&再次运行该值未初始化为零,而是从最后一个递增的值开始.
我在Eclipse模拟器上运行它.这个模拟器有问题吗?
我不想要解决方案.我可以在onCreate()方法中将变量初始化为零.只是想知道为什么?
而且我没有点击主页按钮而是单击后退按钮并且还检查了onDestroy().
解决方法:
静态数据一直存在,直到发生以下情况之一:
> VM终止.
>该过程终止.
>该类已卸载.
现在,据我所知,Dalvik不会卸载类,因此静态的生命周期实际上与进程的生命周期有关.
即使在活动上调用onDestroy(),进程本身也可以无限期地运行以用于缓存目的.重新启动应用程序时,将恢复此缓存副本.
进一步阅读:http://developer.android.com/guide/components/processes-and-threads.html
现在,在从全部修改过的活动中具有公共静态变量的代码确实存在某些难闻的气味……
总结以上是内存溢出为你收集整理的java – Android应用程序持久化Activity类的静态数据成员全部内容,希望文章能够帮你解决java – Android应用程序持久化Activity类的静态数据成员所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)