我有一個按鈕,它在按下時會創建一個對象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