0

アプリが実行されていないときに、n分ごとにいくつかの機能を実行しようとしています。それにはローカル通知が適していると思いますが、1つ問題があります。

ローカル通知を次のように設定した場合:

 -(void)notification{
     UILocalNotification *localNotif = [[UILocalNotification alloc] init];
     if (localNotif == nil)
         return;
     localNotif.fireDate = [[NSDate date] dateByAddingTimeInterval:15];
     //localNotif.timeZone = [NSTimeZone defaultTimeZone];

 // Notification details
     localNotif.alertBody = @"marko";
 // Set the action button
     localNotif.alertAction = @"View";

     localNotif.soundName = UILocalNotificationDefaultSoundName;
     localNotif.applicationIconBadgeNumber = 1;

 // Specify custom data for the notification
     NSDictionary *infoDict = [NSDictionary dictionaryWithObject:@"someValue" forKey:@"someKey"];
     localNotif.userInfo = infoDict;

// Schedule the notification
   [[UIApplication sharedApplication] scheduleLocalNotification:localNotif];
}

通知は毎回発生し、次のことを行います。

 - (void)application:(UIApplication *)app didReceiveLocalNotification:(UILocalNotification *)notif {
NSLog(@"Recieved Notification %@",notif);
 }

私が望むのは、15秒後に最初にいくつかの関数を起動し、関数がYESを返した場合、サウンドを再生してバッジを付けることです。

どうやってするか?

4

1 に答える 1

1

システムが通知を配信するときにアプリケーションが最前面に表示されている場合、アラートは表示されず、アイコンもバッジも表示されず、サウンドも再生されません。ただし、 application:didReceiveLocalNotification: は、アプリケーション デリゲートが実装している場合に呼び出されます。

デバイスでテストしていることを確認してください。

于 2013-05-10T11:02:46.963 に答える