我需要知道是否有可能創建一個新線程來處理設置本地通知。在新線程上設置本地通知?
我的應用程序在很大程度上依賴於這些通知,因此我希望在手機設置通知時使應用程序正常工作。
例子:
(現在)
你啓動應用程序,該應用程序在啓動畫面掛起設置本地通知,然後將其啓動。
(我想)
應用程序啓動和而本地通知設置是可用的。
我需要一些示例代碼,也請:)
(備案,我設置的每個應用程序進入前景爲我自己的原因時...... 60個本地通知)
謝謝! !
我需要知道是否有可能創建一個新線程來處理設置本地通知。在新線程上設置本地通知?
我的應用程序在很大程度上依賴於這些通知,因此我希望在手機設置通知時使應用程序正常工作。
例子:
(現在)
你啓動應用程序,該應用程序在啓動畫面掛起設置本地通知,然後將其啓動。
(我想)
應用程序啓動和而本地通知設置是可用的。
我需要一些示例代碼,也請:)
(備案,我設置的每個應用程序進入前景爲我自己的原因時...... 60個本地通知)
謝謝! !
是的,這是可以做到的,我做這一切的時候:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Add the navigation controller's view to the window and display.
[NSThread detachNewThreadSelector:@selector(scheduleLocalNotifications) toTarget:self withObject:nil];
[window addSubview:navigationController.view];
[window makeKeyAndVisible];
return YES;
}
-(void) scheduleLocalNotifications
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
for (int i = 0; i < 60; i++)
{
UILocalNotification *localNotif = [[UILocalNotification alloc] init];
if (localNotif == nil)
return;
NSDate *sleepDate = [[NSDate date] dateByAddingTimeInterval:i * 60];
NSLog(@"Sleepdate is: %@", sleepDate);
localNotif.fireDate = sleepDate;
NSLog(@"fireDate is %@",localNotif.fireDate);
localNotif.timeZone = [NSTimeZone defaultTimeZone];
localNotif.alertBody = [NSString stringWithFormat:NSLocalizedString(@"This is local notification %i"), i];
localNotif.alertAction = NSLocalizedString(@"View Details", nil);
localNotif.soundName = UILocalNotificationDefaultSoundName;
localNotif.applicationIconBadgeNumber = 1;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotif];
NSLog(@"scheduledLocalNotifications are %@", [[UIApplication sharedApplication] scheduledLocalNotifications]);
[localNotif release];
}
[pool release];
}
從項目我現在工作的服用,我可以證實,它將按預期工作。
編輯:
例子是在漏水,因爲scheduleLocalNotifications
處理NSAutoreleasePool
失蹤 - 現在它加入的例子。
執行線程的一種方法是用performSelectorInBackground
。
例如:
[myObj performSelectorInBackground:@selector(doSomething) withObject:nil];
您應該注意,但是,蘋果是相當強烈建議您使用更高級的概念,如NSOperation
S和調度隊列而是明確產卵線程。見Concurrency Programming Guide
感謝您的貢獻! – Mazyod 2010-11-30 18:30:13
它崩潰的更多。 :( – 2013-10-23 06:26:52