質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

1回答

3036閲覧

iOSのローカル通知のバックグラウンドでの動作について

paAr0

総合スコア6

Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2015/02/13 10:59

ローカル通知をappdelegateで受けとる際、アプリの状態の違いで、3カ所にソースを書くのが一般的な処理だと思います。

lang

1- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 2{ 3 NSDictionary* userInfo = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey]; 4 if (userInfo != nil) { 5 function1(); //アプリが終了しているとき 6 } 7 8 return YES; 9} 10 11- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification { 12 if (application.applicationState == UIApplicationStateActive) { 13 function2(); //アプリが起動しているときに、通知が飛んで来たとき 14 return; 15 } 16 17 if (application.applicationState == UIApplicationStateInactive) { 18 function3(); //アプリがバックグラウンドに存在するときに、通知センターをクリックしたとき 19 return; 20 } 21} 22

このような動作をすることは把握してるのですが、
「アプリが起動していて画面が表示されているが、他のアプリやWi-Fi選択のダイアログが表示されているとき」
はどうすればいいのでしょうか?
function3()が実行されるのですが、function4()を実行したいと思っています。
振り分けるいい方法はないでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

別アプリのアラートビューに邪魔された時、
AppDelegateの「applicationWillResignActive」は呼ばれるけれども、
「applicationDidEnterBackground」は呼ばれていない、
というふうになっていた気がします。

http://qiita.com/itoz/items/cac51cc75cee5b35b0f0
この「アプリ一覧表示画面」を表示している時と同じく。

これを使えば、バックグラウンドにいるのか、別のアラートビューに邪魔されているのかを取得できるのでは、と思いました。

投稿2015/02/15 12:52

AlecYawata

総合スコア13

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問