ios - 如何识别应用程序进入后台的方式?

标签 ios objective-c iphone swift application-state

据我所知,目前有两种方法可以让应用进入后台:

1) 用户按下主页按钮

2) 应用已经离开了一段时间,用户没有任何操作,设备睡着了

这两个结果合二为一 - applicationDidEnterBackground 方法被调用,应用程序状态变为 UIApplicationState.Background。那么我怎么知道这到底是怎么发生的呢?我知道这是可能的,因为我眼前有一个应用程序,它会根据用户是否按下主页按钮采取不同的操作。有什么想法吗,伙计们?

最佳答案

据我所知(相信我,我已经尝试过),没有正式的公共(public) API 允许您执行此操作。但是,我发现了这个 GitHub repo ,您应该特别查看的文件是 app delegate implementation file .

repo 说:

This project describes how to detect when a user presses the home button to leave your application and when they press the lock button to put your app into the background.

It utilizes CSNotificationCenter to detect Darwin notifications.

This user在 Stack Overflow 上回答了两个与此相关的问题, repo 似乎基于:

Differentiate between screen lock and home button press on iOS7

How to differentiate between screen lock and home button press on iOS5?

老实说,我不知道 Apple 会拒绝还是接受这个实现。如果您最终以某种方式使用它,请告诉我。我也相信这是 iOS 7 及更高版本。

关于ios - 如何识别应用程序进入后台的方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26083933/

相关文章:

objective-c - 创建派生属性的最佳方法是什么

ios - 如何在 IOS 中使用 X509 客户端证书?

objective-c - 将 UITextField 限制为特定字符范围

ios - 如何用另一个透明的 CALayer 遮盖 CALayer?

objective-c - xCode6 如何在 Storyboard中正确应用模糊/活力效果?

ios - 计算屏幕上字体的宽度

iOS xib设置tableview单元格约束

c# - 在 MonoTouch : works, 中绑定(bind) native 库,但为什么子类化时会出现奇怪的结果?缺少 NullAllowed 属性?

ios - 使用不同的变量异步多次运行某些代码

iphone - 屏幕突然变黑