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

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

巴扎黑
巴扎黑

모든 응답(3)
左手右手慢动作

현재 활동은 수명 주기 동안 다른 강력한 참조로 참조되어야 하며 재활용되지 않습니다.
파기되면 해당 참조는 약한 참조로 참조되며 다음 GC에서 재활용됩니다.

刘奇

현재 문제 설명으로 볼 때 질문의 사용 시나리오와 목적을 알 수 없습니다. 원하는 것이 현재 활동의 개체라면 필요한 대로 수행하면 됩니다. 그런데 뭘 원하시나요? Application에 물체를 담았다가 놓기 싫다면... Application의 수명주기는 앱만큼 길어요. 일반적으로 registerActivityLifecycleCallbacks Activity桟 관리를 용이하게 하기 위해 Activity 活动 시 참조를 유지하고 Destroy 시 제거하지 않습니다. 메모리 누수를 일으키고 현재 활동을 실행할 수도 있습니다.

PHPzhong

사실 나중에 알고 보니 약한 참조를 사용하여 Activity 참조를 저장해도 메모리 누수가 발생하지 않으며 필요할 때 Activity 참조가 재활용되지도 않습니다. 질문에 소개된 방법이 매우 적합합니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿