android - 安卓如何保存当前运行的Activity
巴扎黑
巴扎黑 2017-04-18 09:14:24
0
3
383

  安卓保存当前Activity http://droidyue.com/blog/2016...
  这个第三种方法是我最满意的,在Application中采用registerActivityLifecycleCallbacks注册Activity声明周期回调,在resume回调中,使用弱引用保存Activity的引用,因为强引可能会引起内存泄露,但我觉得用弱引用也有问题,弱引用只要垃圾收集线程扫描到这个区域就会把内存回收,所以,如果弱引用指向的Activity被垃圾收集器回收了怎么办?

巴扎黑
巴扎黑

全部回覆(3)
左手右手慢动作

目前的Activity,在其生命週期內,應該是被其他的強引用引用著不會被回收。
當其Destory後,其引用被一個弱引用引用著,然後在下一次的GC就會被回收了。

刘奇

目前的問題描述來看我不清楚題主的使用場景和目的.如果你要的是當前Activity的對象,那你拿到了就ok了,該做些什麼操作就去做,但是你想在Application中持有一个对象还不想释放...Application的生命周期和app一样长,你持有一个生命周期比你短的对象,肯定会造成内存泄漏.一般来说registerActivityLifecycleCallbacks是为了方便管理Activity桟,在Activity 活动时持有引用,在 Activity Destroy的時候去掉.這樣就不會造成內存洩漏,也能操作當前的Activity.

PHPzhong

其實後面發現是自己理解錯誤,使用弱引用來保存Activity的引用是不會引起內存洩漏的,也不會造成需要用的時候Activity的引用被回收了。題目中介紹的方法非常適合。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板