Activity 调用了finish之后,界面没有销毁

jude_happy 2014-04-10 08:02:43
请问一下,在activity_A中启动了另外一个activity_B,并且随后调用finish。
发现有的时候,activity_B 结束之后返回,发现activity_A的界面还存在。

请问这个 是什么原因?应该如何解决?
...全文
10667 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
孤独de猫 2016-03-04
  • 打赏
  • 举报
回复
有可能A页面里面资源没释放
藏于天地 2016-03-03
  • 打赏
  • 举报
回复
是不是你的A页面有资源没有释放...
qq_24954781 2016-03-03
  • 打赏
  • 举报
回复
引用 18 楼 Brightshadow11111 的回复:
代码没有问题 之前发现过这样的问题,但原因不是没有 finish掉 而是启动A页面的时候启动了两个,导致了finish 了一个还有一个,原来我也以为是没有生效的,你可以看看是不是会有两个页面的
赞一个,我也是这个问题,哈哈
Birds2018 2014-12-26
  • 打赏
  • 举报
回复
我怀疑你的stack里面 不止一个同样的Activty实例对象,你finished一个以后 后面一个pop上来 误以为没有finished 你在onPause onStop里面打印一下语句看看有没有执行。
小妖森 2014-12-26
  • 打赏
  • 举报
回复
有没有数据库操作,corsor没有关闭,或者其他的阻塞操作。是acitivity被阻塞?
ssmoom 2014-12-26
  • 打赏
  • 举报
回复
你的OnDestory应该不会被立即调用吧
五柳--先生 2014-12-26
  • 打赏
  • 举报
回复
代码没有问题 之前发现过这样的问题,但原因不是没有 finish掉 而是启动A页面的时候启动了两个,导致了finish 了一个还有一个,原来我也以为是没有生效的,你可以看看是不是会有两个页面的
feiyushenyou 2014-12-26
  • 打赏
  • 举报
回复
调试一下吧。。
「已注销」 2014-12-26
  • 打赏
  • 举报
回复
加日志跟踪或者把acitivity设置成单列模式试试
破折号 2014-04-12
  • 打赏
  • 举报
回复
检查一下manifest,是否有自动启动的可能?
android小于 2014-04-11
  • 打赏
  • 举报
回复
引用 6 楼 jude_happy 的回复:
[quote=引用 3 楼 heaimnmn 的回复:] 我觉得A肯定没有执行finsh那句话,你是不是把this.startintent放在了finsh的前面啊?
Intent intent = new Intent("syncml.intent.action.ABB_SYNC"); intent.putExtra("fromSetup", true); intent.putExtra(AttServerManager.ACTION_FROM, AttServerManager.FROM_EXIST_CUSTOM); startActivity(intent); finish(); 我是先start Activity_B, 再finish的。 这个地方是否是有问题?[/quote] 你这里的代码没有问题的,你是在什么时候触发这个事件的呢。
jude_happy 2014-04-11
  • 打赏
  • 举报
回复
没有执行onDestroy这一点可以肯定。 可以先finish 再startActivity吗?会不会造成activity_B启动不了?
哎,真难 2014-04-11
  • 打赏
  • 举报
回复
哦,你debug看下 startActivity(intent);后会不会执行finish,而且注意规范,acitivty名.this.finish
jude_happy 2014-04-11
  • 打赏
  • 举报
回复
引用 3 楼 heaimnmn 的回复:
我觉得A肯定没有执行finsh那句话,你是不是把this.startintent放在了finsh的前面啊?
Intent intent = new Intent("syncml.intent.action.ABB_SYNC"); intent.putExtra("fromSetup", true); intent.putExtra(AttServerManager.ACTION_FROM, AttServerManager.FROM_EXIST_CUSTOM); startActivity(intent); finish(); 我是先start Activity_B, 再finish的。 这个地方是否是有问题?
ascleft 2014-04-11
  • 打赏
  • 举报
回复
楼主在a中建一个静态的~=this,然后再在b中在finish之前先做一次b.~.finish(); 然后就ok了,祝楼主学习顺利,不会的地方请随时联系。
Trent1985 2014-04-11
  • 打赏
  • 举报
回复
可能你的finish语句没有执行,仔细检查一下!
哎,真难 2014-04-11
  • 打赏
  • 举报
回复
我觉得A肯定没有执行finsh那句话,你是不是把this.startintent放在了finsh的前面啊?
android小于 2014-04-11
  • 打赏
  • 举报
回复
finish();调用应该完成动作后将activity移出栈,所以在下一个activity按返回就找不到他了、
jude_happy 2014-04-11
  • 打赏
  • 举报
回复
这段代码肯定是调用了,否则activity_B也不能启动的。 关键是android 在调用activity 的finish的时候,是不是立刻销毁这个activity 对应的界面呢?
wo叫天然呆 2014-04-10
  • 打赏
  • 举报
回复
首先要确定你finish的是不是A,可以打印log查看或者设置断点Debug查看
加载更多回复(1)

80,359

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧