Multitasking 带来的新问题及解决办法

2010-08-06 01:41:21 +08:00
 Livid
1. 如果你的程序是在启动(didFinishLaunching)的时候检查更新,那么到了 iOS 4 时代,你要想到,你的程序可能会很长时间才冷启动一次。新的做法是在 applicationWillEnterForeground 的时候启动一个 operation(如果这个时候 queue 是空的话)。

2. 有的操作可能会把屏幕锁住的同时在背后启动线程反复重试,在 iOS 3 时代,如果用户等不住了可以按 Home 键关闭软件,然后下次回来的时候 app 就继续可用。但是在 iOS 4 上,用户按了 Home 之后再回来看到的依然是那个锁住的界面。解决做法是加入一个 cancel 按钮,按下时发一个 notification,界面元素收到这个 notification 时把界面解锁。
4423 次点击
所在节点    iDev
6 条回复
airwolf
2010-08-06 01:58:35 +08:00
先记一下,暂时没有用到多线程操作。

话说,虽然不是每个程序都必须使用 Multitasking,但是给一些老的程序进行 iOS4 支持还真是一件劳命伤财的事情,尤其是以前的一些内存管理方面的疏忽,iOS4 上只要用户 Fast-switching,再返回程序的时候一定会出问题 T_T
Livid
2010-08-06 01:59:25 +08:00
在做的时候经常 CMD+SHIFT+A 就可以发现很多问题了,很有用的办法。
Livid
2010-08-06 02:03:21 +08:00
Twitter 上的 @CocoaBob 关于这个问题转给我的两张图,很有用:

http://twitpic.com/2b1qlu

http://twitpic.com/2b1qki
airwolf
2010-08-06 02:03:27 +08:00
是的是的,这个快捷键经常用 。。。

不过那一堆抽象的蓝色箭头有的时候似乎比当前的问题更不容易理解 ^_*
Livid
2010-08-06 02:03:52 +08:00
@airwolf 至少解决所有的 potential leak 吧。
airwolf
2010-08-06 02:08:50 +08:00
@Livid 那是 :)

那两张图非常有用,Thanks ^^

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1378

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX