押すとオブジェクトを作成するボタンがありますthing
。次に、10 秒間スリープしてから、次thing.go
のようなアプリケーション状態を取得する呼び出しを行います
UIApplicationState state = [[UIApplication sharedApplication] applicationState];
次に、この質問の回答とコメントに従って、アプリがバックグラウンドにあるかどうかを確認し、バックグラウンドにある場合はローカル通知を表示します。
だから私はボタンを押してすぐにホームキーを押してメイン画面に移動します(それによりアプリをバックグラウンドに置きます)
ただし、if ステートメントが false を返しているため、内部でコードを実行していないことがわかります (if ステートメント内に NSLog を配置することにより)。
そこで、私の次の思考プロセスは、 を使用してコンソールに日付を表示することでした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;
}