看板 AndroidDev 關於我們 聯絡資訊
最近在做一個類似IM的東西 service裡面有個叫userinfo的static object 只有紀錄account session等等東西 需要維持他一直在記憶體裡面 我已經讓service以foreground的方式啟動了 但是我發現手機放一陣子後userinfo還是會不見 (所謂的不見就是要去抓東西都抓到空字串 估計singleton被recreate了) 但是我看service的foreground notification圖示還在 應該是沒有被刪掉才對 何況static object應該不會被gc 請問是有什麼可能導致這種情形呢? 先謝過各位前輩 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.169.156.204
KeySabre:logcat看是否重新onCreate。可考慮sharedpreferences, 12/18 23:10
KeySabre:我想userinfo應該不常變動? 12/18 23:10
fasthall:可能每幾分鐘才會變一次 我也正在考慮sharedpreferences 12/18 23:16
fasthall:不過還是想了解為什麼這樣做了userinfo還是會被清掉 12/18 23:16
KeySabre:不清楚『放一陣子』是多久?經過待機或鎖屏?曾被系統或 12/19 12:54
KeySabre:手動殺進程?是否曾經crash或low memory?都該去追logcat 12/19 12:54
KeySabre:。 12/19 12:54
sdyy:notifidation 就算service被清掉也還會在 12/19 22:02
sdyy:以現在Android的機制 是無法保證service不會被殺掉 12/19 22:03
sdyy:頂多保證會重啟 所以暫存的東西務必都要存好以便重新讀取 12/19 22:04
tomap41017:推樓上。有可能是整個App被Kill重啓,所以Service也重 01/05 15:50
tomap41017:啟動了... 01/05 15:50