[問題] 從背景回來時某個值被清空導致crash?

看板AndroidDev作者 (henry)時間12年前 (2013/10/18 15:01), 編輯推噓8(8018)
留言26則, 11人參與, 最新討論串1/1
請問一下各位 最近遇到一個很奇怪的問題 就是當app縮到背景一段時間以後 然後當我在按下app叫回前景的時候 會有某個值被清空 導致程式crash 我在nexus7上不常發生這種情況, 可是使用叫低階的手機時常常發生 請問一下各位有遇到過類似情況嗎 感謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.11.17.212

10/18 15:03, , 1F
NullPointerException? 被自動回收了嗎
10/18 15:03, 1F

10/18 15:19, , 2F
檢查一下onResume有沒有寫release之類的東西
10/18 15:19, 2F

10/18 16:15, , 3F
低階手機的記憶體比較少 有可能被GC掉了
10/18 16:15, 3F

10/18 17:04, , 4F
NullPointerException 好像又是被自動回收了
10/18 17:04, 4F

10/18 17:04, , 5F
有辦法防止這種現象嗎?onResume應該沒有問題
10/18 17:04, 5F

10/18 17:04, , 6F
因為不是每次都會變成null 是縮背景一段時間以後才會
10/18 17:04, 6F

10/18 17:05, , 7F
會不會你一直讀取某些東西,所以其他東西被強迫放掉
10/18 17:05, 7F

10/18 17:05, , 8F
如果縮小以後在打開都沒有問題,不過大概過了五分鐘以後
10/18 17:05, 8F

10/18 17:05, , 9F
像圖片可以設定如果要OOM就把前面的放掉
10/18 17:05, 9F

10/18 17:05, , 10F
在打開就會變成null
10/18 17:05, 10F

10/18 17:06, , 11F
看LOG是哪個NULL 應該可以攔截到(或者你RESUME有讀取那些)
10/18 17:06, 11F

10/18 17:06, , 12F
請問可以把值設定成不自動回收之類的嗎
10/18 17:06, 12F

10/18 17:06, , 13F
我有攔截到哪個值變成null,但是我不知道該怎麼阻止他
10/18 17:06, 13F

10/18 17:30, , 14F
你google : savedInstanceState 應該對你有幫助
10/18 17:30, 14F

10/18 21:17, , 15F
但android會只砍某個變數嗎?不會吧!
10/18 21:17, 15F

10/18 21:29, , 16F
會從最吃資源砍起 :)
10/18 21:29, 16F

10/18 22:37, , 17F
因為我重新開啟app後,某個數值被清為null
10/18 22:37, 17F

10/18 22:38, , 18F
導致app crash,我不確定是只有一個還是其他也有.. Orz
10/18 22:38, 18F

10/18 23:57, , 19F
就log一個一個看吧 不過如果有照標準生命週期做事
10/18 23:57, 19F

10/18 23:57, , 20F
應該是不會發生這種事情
10/18 23:57, 20F

10/18 23:58, , 21F
確認onPause/onResume onStop/onStart onCreate/onDestory
10/18 23:58, 21F

10/18 23:59, , 22F
都有做到對應的動作 new/release reg/unreg等等
10/18 23:59, 22F

10/19 09:49, , 23F
onSaveInstanceState 請善用parcelable
10/19 09:49, 23F

10/19 14:19, , 24F
可以存到preference
10/19 14:19, 24F

10/20 12:32, , 25F
回收很合理 不然user的記憶體永遠不夠用
10/20 12:32, 25F

10/20 12:33, , 26F
應該要自己處理onPause跟onRusume
10/20 12:33, 26F
文章代碼(AID): #1IODoxA4 (AndroidDev)