`
sogotobj
  • 浏览: 617611 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

iphone编程,使用代码结束自己的一些研究。

 
阅读更多

事情的起因是有童鞋在论坛上发了一个帖子,原帖如下:

“在int retVal = UIApplicationMain(argc, argv, nil, nil);
后面的[pool drain]行打上断点,可是按HOME键退出的时候却没有执行到这里,哪位知道是什么原因?
在applicationWillTerminate中打上断点是可以执行到的”

我做了很多次试验,并且也到网上查了一下,发现根本无法做到,当然如果你有什么好的办法做到,请告诉我,先谢谢了。

我试验得出的结论如下:(ios 4环境)

1.使用代码可以结束自己只有一种方式,而且apple不建议这样用,就是调用exit()函数。在2.0以前uiapplication类中有一个方法可以调用,但是现在已经没有了,而且如果你强制使用2.0以前的编译环境,apple会拒绝你发布这个程序到app store.

2.用户按下home键后,程序转入后台运行。

3.连续按两次home键后,在iphone屏幕下面会出现一个程序列表,这个列表,我原先以为是转入后台运行的程序列表,通过试验结果看到,我错了,这个只是最近使用的程序列表,不论这个程序是否在后台运行。如果你按住其中一个程序图标一会儿,到这些图标开始晃动的时候,会在图标的左上角出现一个红色的减号,按这个减号,会把这个程序从最近运行列表中清除出去。如果这个程序还在后台运行,那么会结束这个程序的运行。

4.在info.plist中增加了一个选项。“Application does not run in background”,如果你添加了这一项,并且选中,那么当用户按home键后,程序不会转入后台运行,会直接被kill掉。

5.无论上面何种方式kill掉程序,applicationWillTerminate都会被调用。

这就是我试验的结果,希望对大家有用,如果我的结果不对,或者有更好的办法,请一定不吝赐教。多谢!

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics