+
 新版

为什么一个acitivity已finish,但还会再执行onCreate方法?

MK先生 发布于 2014/09/04 14:59
阅读 1K+
收藏 0

有两个activity,A和B。

两个都是android:launchMode="singleTask"  启动模式

当A  Intent 到 B ,并有Bundle。A 没有执行finish(), A还保留着。

B返回A, 执行finish(),相当于关闭了B。

但返回A时候,我点击home,退到桌面。然后再启动APP,就出现问题了。 

Android系统竟然去执行B页面的onCreate方法,要知道执行home操作前,是停留到A页面的。

因为跳转到B有Bundle,系统捕获不到数据,便报错了。即使没有Bundle,但我也不希望它还去跳转B一次!


开始,我怀疑android:launchMode="singleTask"  的问题,后来试了4种启动模式,都不行。

请问,各位,这是啥情况?  多谢给个提醒!

加载中
0
MK先生
MK先生

还有一个问题,一旦网络连不上了。

点击home退到桌面,然后再进来APP,莫名其妙直接退到MAIN界面了,也就是APP的第一界面。当然,A和B不是MAIN界面。

这个,各位,有谁能帮帮解答吗?

0
傻瓜会讲笑话
傻瓜会讲笑话

执行activity的finish方法不会立即关闭activity,而会调用onCreate方法,然后再去调用onDestroy方法,也就是说你实现activity.finish,依然会调用被关闭activity的onCreate方法,只有当activity的onCreate执行完才会执行该activity的onDestroy方法,直到此时才关掉你要关的activity。

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部