请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

执行stop 方法,为什么会重新new Activity 呢

文森老师您好,Acitivity 实例的创建是在handleLauncherActivity 里面反射生成的,然后才会执行 onCreate 、onStart、onResume 的方法,为什么您说在横竖屏切换执行onStop 方法之后,会重新new Activity 呢
图片描述

正在回答 回答被采纳积分+3

1回答

Vincent文森 2022-07-25 15:56:32

同学你好,这里写的new,指的是创建实例的意思,并不是说不是通过反射创建的。用new这个词简写确实可能会造成误解,在这里补充一下。也给你的细心点赞。

0 回复 有任何疑惑可以回复我~
  • 老师您好,无论是反射还是new 都是创建了Activity 对象的实例对吧,可是为什么执行onStop 方法之后会重新创建Activity 实例呢,这一点我有点看不懂
    回复 有任何疑惑可以回复我~ 2022-07-25 17:35:12
  • 同学你好,这是Android系统的一个机制,横竖屏切换或者Activity切换到后台一段时间之后,Activity实例可能会失去引用,被GC回收掉。算是Android系统的一个内存优化机制,回收不可见实例。这种情况下Activity实例不是一定会被回收,仅仅是有可能,但是对于我们开发者而言,Activity的实例就是不可靠的,所以Activity内部的成员变量,都有可能恢复到初始化状态。
    回复 有任何疑惑可以回复我~ 2022-07-26 11:00:06
  • 明白了,感谢文森老师的耐心解答
    回复 有任何疑惑可以回复我~ 2022-07-26 15:23:03
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信