当前位置: 代码迷 >> Android >> 求教:Activity为什么会自动调用finish()方法解决方法
  详细解决方案

求教:Activity为什么会自动调用finish()方法解决方法

热度:38   发布时间:2016-05-01 21:59:24.0
求教:Activity为什么会自动调用finish()方法
各位大虾:
  小弟在做一个视频录制的小例子,主界面就是预览摄像的RecordActivity,现在我从menu中跳到SetupActivity后(已覆盖前面的RecordActivity),这时候按下返回键直接退出了程序,而不是返回到RecordActivity
  观察RecordActivity的生命周期,发现从RecordActivity ----> SetupActivity过程中执行了如下方法:
  onPause ---> onStop ---> onDestory ,而且在onPause方法时调用 isFinishing() 为true
如此看来,RecordActivity在被覆盖时就执行finish()方法了,但是我的代码中并没有显示调用过该方法,而起系统内存足够,不会是系统不足的问题,小弟猜想是不是摄像过程中用到了Camera,预览界面被覆盖后,触发了什么事件,才会导致这种情况。
  真心求教各位大虾解答!!!


------解决方案--------------------
探讨
各位大虾:
小弟在做一个视频录制的小例子,主界面就是预览摄像的RecordActivity,现在我从menu中跳到SetupActivity后(已覆盖前面的RecordActivity),这时候按下返回键直接退出了程序,而不是返回到RecordActivity
观察RecordActivity的生命周期,发现从RecordActivity ----> SetupActivity……

------解决方案--------------------
自动调用finish(),如果不是人为的话(清单文件配置,代码中执行finish),唯一的可能就是系统不够内存用了。。当系统不够内存用的时候,会按一定优先级杀死一些进程神马的。
------解决方案--------------------
看一下你2个activity的taskid是不是一样。有可能跟你的启动模式有关
当2个页面处在不同的taskid下时,a--〉b b按返回就会退出而不返回到a
  相关解决方案