如何区分锁屏和home
来源:互联网 发布:ubuntu网络邻居 编辑:程序博客网 时间:2024/05/18 01:57
最近的项目中,当app进入后台时,需要执行一些操作。根据需求,还需要判断,是哪种操作导致app进入后台的:按home键;按锁屏键;在app中跳转到别的app。目前遇到的情况,就这三种。
进入正题,找到AppDelegate.m 文件,然后:
1、在方法 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 中,添加如下代码:
CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(),
NULL,
displayStatusChanged,
CFSTR("com.apple.springboard.lockcomplete"),
NULL,
CFNotificationSuspensionBehaviorDeliverImmediately);
staticvoid displayStatusChanged(CFNotificationCenterRef center,
void *observer,
CFStringRef name,
const void *object,
CFDictionaryRef userInfo) {
if (name ==CFSTR("com.apple.springboard.lockcomplete")) {
[[NSUserDefaultsstandardUserDefaults]setBool:YESforKey:@"kDisplayStatusLocked"];
[[NSUserDefaultsstandardUserDefaults]synchronize];
}
}
UIApplicationState state = [[UIApplicationsharedApplication]applicationState];
if (state ==UIApplicationStateInactive) {
NSLog(@"按了锁屏键");
}
elseif (state ==UIApplicationStateBackground) {
if (![[NSUserDefaultsstandardUserDefaults]boolForKey:@"kDisplayStatusLocked"]) {
NSLog(@"按了home键,或者跳转到另一个app");
}
else {
NSLog(@"按了锁屏键");
}
}
[[NSUserDefaultsstandardUserDefaults]synchronize];
- 如何区分锁屏和home
- 获取&区分iOS锁屏与Home事件
- iOS_获取&区分iOS锁屏与Home事件
- iOS_获取&区分iOS锁屏与Home事件
- 如何区分WS_CLIPCHILDREN和WS_CLIPSIBLINGS
- 如何区分声明和定义
- 如何区分url和uri
- 如何区分ipad2和ipad3
- 如何区分MNO和MVNO
- 如何区分系统软件和应用软件
- 如何区分声明和定义?
- 如何区分InputStream和OutputStream
- 如何区分分类和回归
- 如何区分数据和指令
- 2.3和4.0如何监听HOME键
- 在CSS中如何区分和
- 在CSS中如何区分和
- 如何区分Server Time 和 Network Time
- IO-01表格输出
- linux下的文件压缩与打包,compress,gzip,zcat,bzip2,bzcat,tar,find,tarfile,tarball
- [Synth 8-2543] port connections cannot be mixed ordered and named
- Centos6.5 下 Maven 安装
- Java--排序与查找
- 如何区分锁屏和home
- 让免费版MarkdownPad2使用Pro版本的功能
- OLTP和OLAP的区别
- 第87讲:Scala中使用For表达式做查询
- 【java】itoo项目实战之EJB中的RMI框架
- jquery ajax 解决跨域访问问题
- Go语言中的单元测试及反向代理
- 选择排序----数组实现
- 将求最长子序列的算法由O(n²)改进为O(n).