Java 关于在调用垃圾回收时保存当前状态
我做过这方面的研发,但是找不到这个问题的答案 如果后台活动是android系统的GC,如何保存当前状态 在GC真正发生之前 问候Java 关于在调用垃圾回收时保存当前状态,java,android,Java,Android,我做过这方面的研发,但是找不到这个问题的答案 如果后台活动是android系统的GC,如何保存当前状态 在GC真正发生之前 问候 Inder bagga由于Java GC在运行之前或之后不提供任何回调机制或任何钩子,因此不可能在GC之前执行某些活动 尽管出于监控目的,您可以尝试在固定的时间间隔内捕获当前状态,但要确定此时间间隔,您可能需要验证应用程序中GC的发生方式: jstat -gcutil -t -h5 <pid> 500 5 如果YGCT是以毫秒为单位的小循环时间,这将给出
Inder bagga由于Java GC在运行之前或之后不提供任何回调机制或任何钩子,因此不可能在GC之前执行某些活动 尽管出于监控目的,您可以尝试在固定的时间间隔内捕获当前状态,但要确定此时间间隔,您可能需要验证应用程序中GC的发生方式:
jstat -gcutil -t -h5 <pid> 500 5
如果YGCT是以毫秒为单位的小循环时间,这将给出应用程序GC统计的一般概念,即小循环每19秒发生一次,基于此,您可以在希望保存当前状态时进行调整,因为Java GC在运行之前或之后不提供任何回调机制或任何挂钩,在GC之前不可能进行一些活动 尽管出于监控目的,您可以尝试在固定的时间间隔内捕获当前状态,但要确定此时间间隔,您可能需要验证应用程序中GC的发生方式:
jstat -gcutil -t -h5 <pid> 500 5
如果YGCT是以毫秒为单位的小循环时间,这将给出应用程序GC统计的一般概念,即小循环每19秒发生一次,基于此,您可以在希望保存当前状态时进行调整如果应用程序中有任何内容正在被垃圾收集,它将已经通过
onStop()
和ondestory()
方法。在它成为GCd之前,没有办法保存它
如果您想存储状态,最好在其中一个位置进行存储-尽管最安全的位置是
onPause()
,因为onStop()
和onDestroy()
都是可终止的进程,这意味着这些方法可能无法完全执行-请参阅上的Android文档。如果应用程序中的任何内容正在被垃圾收集,那么它将已经通过了onStop()
和onDestroy()
方法。在它成为GCd之前,没有办法保存它
如果您想存储状态,最好在其中一个位置进行存储-尽管最安全的位置是
onPause()
,因为onStop()
和onDestroy()
都是可终止的进程,这意味着这些方法可能无法完全执行-请参阅上的Android文档我认为GC的全部要点是您不必担心:)我认为GC的全部要点是您不必担心:)