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

    技术2022-05-18  17

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

    “在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都会被调用。

     

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

     

     

     

     


    最新回复(0)