Rumah > Soal Jawab > teks badan
本人写了一个activity初始化了一些数据,而在另一个activity改变数据后返回时,发现数据又再一次被初始化,有什么办法可以改变这种情况吗?
初始化数据是在onCreate()
高洛峰2017-04-17 17:36:18
建议可以了解一下 Android 官方教程中关于 Activity Lifecycle 中的内容。
网址为https://developer.android.com...
解决方法:
把初始化操作放在 Activity 的 OnCreate()
方法中,而不是 OnResume()
或者 OnStart()
方法中。
另外也可以通过设置静态全局变量标识符为 0,在初始化之后就置 1,在初始化之前判断该变量是否为 0,但这不是正道,建议了解 LifeCycle 来解决该问题。
附一张 Lifecycle 的图
黄舟2017-04-17 17:36:18
首先现象是数据又被初始化了,所以解决方案如下:
1,思考数据为何又被初始化,就如楼上所说,可能你在OnResume(),OnStart(),方法里面初始化
2,产生问题的原因就是数据多次初始化,因此可以为数据初始化增加多次调用的功能,用面向对象的思路封装一下初始化数据,和单利模式有那么点点像,这样的好处是解决多次执行可能产生的问题,
PHPz2017-04-17 17:36:18
如果每次你的Activity
都destroy
了话,那么你把初始化的程序放到onCreate
中自然达不到你想要的结果。所以你还是先打下log
看下你Activity
的生命周期。