【发布时间】:2014-10-20 08:40:08
【问题描述】:
由于未知原因,当我在最近的菜单中终止我的应用并尝试再次启动它时,我的最后一个屏幕再次出现并且设备被冻结。我要做的是硬重启,然后再次启动应用程序......
或者,如果我想在最近杀死后重新启动我的应用程序而不重新启动,我必须在移动终端中键入此命令
killall myapp
在此之后,如果我尝试从主屏幕启动我的应用程序,我的应用程序工作正常...
我想知道的是如何检测用户何时使用主页按钮退出应用程序,从而启动发送 killall 命令的 NSTask ?我知道 Apple 不允许使用 NSTask,但这是一个不打算在 Apple Store 上发布的越狱应用。
这个错误也让我很无聊......在 viewDidLoad 我有几个 NSTask 和检查目录是否存在的方法。您是否认为这些事情会阻止应用程序在最近被杀后重新启动并冻结设备?或者这是因为应用程序以 root 身份运行,并且有一些事情要做,特别是允许设备在这种情况下重新启动应用程序?
提前感谢您的帮助!
【问题讨论】:
-
是的,这肯定是有问题的代码。但是谁知道,没有看到呢?
-
是的,我知道,但这只是检查现有目录的一些基本 NSTask 和 Obj-C 方法,这就是我没有发布任何代码示例的原因。我将尝试删除那部分代码,看看这是否是问题的根源。第一个问题,你知道如何检测应用的退出吗?
-
使用
NSTask检查目录是否存在是您的第一个错误。为此类事情提供了 API 方法。 -
我说错了 ^^ 我使用 Obj-c 方法检查现有目录并使用 NSTask 和 mkdir 创建目录(如果不存在)。现在,我已将目录的创建放入 preinst 脚本中,因此不再需要将 mkdir 放入 viewdidload,我将不得不删除这部分代码,所以...