我是iphone应用程序开发的新手。
我的问题是,当我的应用程序在后台运行时,我如何显示弹出窗口(UIAlertView)?我正在使用iOS6的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];
}发布于 2012-11-29 14:55:02
虽然不能显示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-29 14:48:42
不可能让你的应用程序在后台运行时显示UIAlertView。
发布于 2012-11-29 14:54:22
我认为你不能直接这么做,但你可以 UILocalNotification!
https://stackoverflow.com/questions/13620284
复制相似问题