1. Run the logic code:
-(Void) execbackrgoundmethod
{
/*
Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
If your application supports background execution, this method is called instead of applicationwillterminate: when the user quits.
*/
Uiapplication * APP = [uiapplication sharedapplication];
Bgtask = [App beginbackgroundtaskwithexpirationhandler: ^ {
[App endbackgroundtask: bgtask];
Bgtask = uibackgroundtaskinvalid;
}];
// Start the long-running task and return immediately.
Dispatch_async (dispatch_get_global_queue (dispatch_queue_priority_default,
0), ^ {// write the code you want to run in the back
[App endbackgroundtask: bgtask];
Bgtask = uibackgroundtaskinvalid;
});
}
2. uilocalnotification is displayed in the background:
-(Void) schedulealarmfordate :( nsdate *) thedate
{
// How long will thedate be delayed?
Uiapplication * APP = [uiapplication sharedapplication];
Nsarray * oldnotifications = [App scheduledlocalications ications];
// Clear out the old notification before scheduling a new one.
If ([oldnotifications count]> 0)
[App cancelalllocalconfigurications];
// Create a new notification.
Uilocalnotification * Alarm = [[uilocalnotification alloc] init] autorelease];
If (alarm)
{
Alarm. firedate = thedate;
Alarm. timezone = [nstimezone defaulttimezone];
Alarm. repeatinterval = 0;
Alarm. soundname = @ "alarmsound. caf ";
Alarm. alertbody = @ "Time to wake up! ";
[App schedulelocalnotification: Alarm];
}
}