2

iphoneアプリ開発初心者です。

私の質問は、アプリがバックグラウンドで実行されているときにポップアップ (UIAlertView) を表示するにはどうすればよいですか? iOS 6 に xcode 4.2 を使用していますが、インターネットで満足のいく答えが見つかりません。誰かがこれで私を助けてくれますか?

    - (void)applicationDidEnterBackground:(UIApplication *)application
      {
         UIApplication* app = [UIApplication sharedApplication];
         bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
            [app endBackgroundTask:bgTask];
            bgTask = UIBackgroundTaskInvalid;
         }];

         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         NSTimer* t = [NSTimer scheduledTimerWithTimeInterval:5 target:self selector:@selector(doBackgroundProcessing) userInfo:nil repeats:YES];
        [[NSRunLoop currentRunLoop] addTimer:t forMode:NSDefaultRunLoopMode];
        [[NSRunLoop currentRunLoop] run];
    });

}

    - (void) doBackgroundProcessing
    {
        global = [lMGlobal getInstance];

        while(TRUE)
        {
            [self showAlertFor:@"Hello" andMessage:@"Wake up"];

            [NSThread sleepUntilDate:[lMGlobal getSleepDuration]];

        }

    }

    - (void) showAlertFor:(NSString *)title andMessage:(NSString*)message
      {
          UIAlertView *alertDialog;
          alertDialog = [[UIAlertView alloc]
               initWithTitle:title
               message:message
               delegate: self
               cancelButtonTitle: nil
               otherButtonTitles: @"Mute", nil];

          [alertDialog
          performSelector:@selector(show)
          onThread:[NSThread mainThread]
          withObject:nil
          waitUntilDone:NO];
          [alertDialog release];
      }
4

4 に答える 4

8

UIAlertViewを表示することはできませんが、UILocalNotificationを表示することはできます。コードは次のようになります。

backupAlarm = [[UILocalNotification alloc] init];

backupAlarm.fireDate = alarmTime;
backupAlarm.timeZone = [NSTimeZone systemTimeZone];

backupAlarm.alertBody = @"Good morning, time to wake up.";
backupAlarm.alertAction = @"Show me";
backupAlarm.soundName = UILocalNotificationDefaultSoundName;
于 2012-11-29T06:55:02.387 に答える
0

直接実行できるとは思いませんが、UILocalNotificationを起動できます。

于 2012-11-29T06:54:22.007 に答える
0

バックグラウンドで実行中にアプリを表示することはできませんUIAlertView

于 2012-11-29T06:48:42.460 に答える
0

さらに @DavidBrunow の応答として、構成されたローカル通知を次のようにスケジュールする必要があります。

[[UIApplication sharedApplication] scheduleLocalNotification: backupAlarm];
于 2013-11-29T11:14:45.510 に答える