1

当您在主页上用力按下应用程序图标并选择其快速操作之一时,您有两个选项:

1. 应用程序已经在运行(在后台)

在这种情况下,快速操作由performActionForShortcutItem:completionHandler:

2.您的应用程序正在启动

在这种情况下,调用 did/willFinishLaunching 然后performActionForShortcutItem:completionHandler:

我在一篇文章中读到,如果应用程序由快速操作启动,则必须检查 did/willFinishLaunching,如果是,则在此处处理并返回 false,这样performActionForShortcutItem:completionHandler:就不会再次调用。我想知道为什么这种方法更好?这是因为否则您的整个应用程序会启动,然后处理快速操作而不是直接处理快速操作。

4

1 回答 1

1

正如 Dan 在评论中指出的那样,Apple 文档解释了为什么我们应该以这种方式对其进行编程。

请求的快速操作可能会使用与应用启动时不同的代码路径。例如,假设您的应用程序通常启动以显示视图 A,但您的应用程序是为了响应需要视图 B 的快速操作而启动的。要处理这种情况,请在启动时检查您的应用程序是否正在通过快速操作启动。

于 2015-11-06T16:58:20.773 回答