本人写了一个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
的生命週期。