我有一个按钮,它在按下时会创建一个对象thing
。然后,它睡了十秒钟,然后调用thing.go
它得到像显示应用程序状态iOS
UIApplicationState state = [[UIApplication sharedApplication] applicationState];
应用状态。然后下面this问题的回答和评论我检查,如果应用程序是在后台运行,如果是,它会显示一个本地通知。
所以我按下按钮后立即按Home键回到主屏幕(这种情况使应用程序在后台)
不过,我可以告诉大家的是,if语句返回false,因此不执行内部的任何代码(通过将NSLog放入if语句中)。
所以我的下一个思考过程是以某种方式使用NSLog(state)
在控制台中显示日期。显然我不能这样做。
那么如何显示applicationState来解决我的问题?还是有另一种方法可以检查该应用程序是否在该类的方法中的后台运行?
这里是go
功能这就是所谓的IBAction
内当按钮被按下
-(void)go {
if (state == UIApplicationStateBackground) {
NSLog(@"App is in background");
}
}
这里是链接到该按钮的IBAction
,即,在按下按钮时运行
- (IBAction)button_help {
myclass* thingy = [[myclass alloc] init];
sleep(10);
thingy.go;
}
仅为您添加的代码Zaph :) –
仅供参考 - 使用属性表示法调用方法的做法很糟糕,即使它有效。调用'go'方法:'[thingy go];'。 – rmaddy
你不能只使用'applicationDidEnterBackground'方法去做你想做的事情吗? https://developer.apple.com/library/ios/documentation/uikit/reference/UIApplicationDelegate_Protocol/Reference/Reference。html#// apple_ref/occ/intfm/UIApplicationDelegate/applicationDidEnterBackground: – Popeye