Niz*_*zam 35 android activity-finish
我在谈论android中的编程.
在早期我想,finish() 关闭当前活动并返回活动堆栈中的上一个,并System.exit(0) 关闭整个应用程序.
但是我错了.我做了一个小实验并且明白两者都只完成当前的活动.
我能注意到的唯一区别是,在Android 2.3.3中
onActivityResult()用finish().而 onActivityResult()不是要求System.exit(0).但是在Android 4.2.2中,两者都调用了onActivityResult()!对于exit(),Intent为null.(我只测试了这2个设备)
finish()是更快的.(好像更多后台操作是否有退出())所以,
两者有什么区别?
在哪种情况下,我可以使用exit()?
我相信在这两种方法之间我还缺少一些东西.希望有人可以解释更多并纠正我.
谢谢
编辑请求:
制作包含2项活动的Android应用程序.使用Intent从Launcher活动中调用第二个Activity.现在,在第二个活动中,点击一下按钮,就可以了System.exit(0);." VM停止进一步执行,程序将退出. "????(根据文档)
我看到那里的第一个活动.为什么?(欢迎你证明我错了/我是对的)
Aya*_*fov 23
实际上,如果您只有一项活动,则没有区别.但是,如果堆栈上有多个活动,则:
System.exit(0)在ActivityB中调用,那么应用程序将被杀死并立即启动,只有一个活动ActivityAmjo*_*osh 13
根据android开发者 -
finish()
在您的活动完成后调用此选项并应关闭.ActivityResult会传播回通过onActivityResult()启动您的人.
System.exit(0)
VM停止进一步执行,程序将退出.
小智 9
根据文档,该程序将退出.
但它似乎是文档中的一个错误.在java程序的情况下,它是正确的.但是进入Android,您将从堆栈中看到之前的Activity.
由于Android编码是使用java编码完成的,因此大多数文档都与java相同.
从文档,
System.exit(0)
VM停止进一步执行,程序将退出.
对于Android方面,我们必须用其他东西替换"程序"这个词.可能是活动或上下文.
| 归档时间: |
|
| 查看次数: |
36099 次 |
| 最近记录: |