有以下兩個activity 簡稱 A B 。A是主界面,在A中的onDestory方法中,我刪除了用戶的臨時數據,A裡面有一個按鈕 可以啟動到B 在B裡面查詢一些數據 然後吧數據傳遞給A,A獲取到數據之後,吧數據顯示在A界面上,問題是:當B獲取到數據之後,用startActivity(intent)啟動到A 把數據傳遞過去的話 ,這樣A就會重新創建一個實例,當我再次按back鍵返回到B時重新查詢數據,這時A就調用了onDestory方法 就把臨時的數據刪除了,不符合我的要求,我要的是當應用退出時才刪除用戶的臨時數據,此時的情況只是從顯示好數據的A 返回到了B 就把用戶的臨時數據刪除了!我用了以下方法 :startactivityForresult 但是這樣的話,A啟動到B B查詢到數據後 直接finish掉,A才以在OnActivityResult中獲取到B傳來的數據 此時用戶點back鍵 應用就直接退出了,並不能返回到B 查詢其他的數據了,不符合我要求!如果改變A的啟動模式 也不行,singTask,和singleTop的話當A獲取到數據顯示好後 ,用戶想點擊返回鍵,返回到B 查詢其他數據就不行了,就會直接退出應用,也不符合要求!
activity 的特性決定了它退出時,activity 內的數據就被銷毀了。
如果你不想受 activity 的限制,可以考慮使用 Service 來做數據的保存,以在 activity 退出後數據不被銷毀。