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

时间:2014-09-28 10:24:47

标签: ios objective-c iphone swift application-state

据我所知,应用程序可以通过两种方式进入后台:

1)用户按下主页按钮

2)应用程序已暂停一段时间而没有任何操作,用户和设备都已睡着了

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

1 个答案:

答案 0 :(得分:1)

据我所知(相信我,我已尝试),没有正式的公共API允许您这样做。但是,我发现了这个GitHub repo,您应该特别注意的文件是app delegate implementation file

回购说:

  

此项目描述了如何检测用户何时按下主页按钮离开应用程序以及何时按下锁定按钮将应用程序置于后台。

     

它利用CSNotificationCenter来检测达尔文通知。

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及以上版本。