2014-03-06 27 views
2

是否可以在iOS中從後臺任務中打開應用程序?如何從iOS中的後臺任務中打開應用程序?

我希望我的應用程序能夠在後臺運行,並且我希望它在任何情況下都可以重新出現,無需用戶輸入。這可能嗎?

在Android中,您可以擁有一個在後臺運行的服務,並且可以隨時啓動一個啓動該活動的應用程序的Activity。

我知道這並不能提供良好的用戶體驗。我仍然想知道它是否可以完成。

+1

你想提交應用程序到商店? –

+0

另外,生成通知並允許用戶打開你的應用程序有什麼錯誤?這是一個默認的iOS模型!此外,您是否嘗試過[[UIApplication sharedApplication] openUrl:] –

+0

不適用於應用商店。 – gjrwebber

回答

1

您可以創建時間偏移爲0的本地通知(例如立即顯示警報)。如果用戶點擊通知,應用程序將啓動。

但是,否則,您將無法在沒有通知的情況下將背景放入背景中。

NSDate * theDate = [[NSDate date] dateByAddingTimeInterval:0]; // 

    UIApplication* app = [UIApplication sharedApplication]; 
    NSArray * oldNotifications = [app scheduledLocalNotifications]; 


    // Clear out the old notification before scheduling a new one. 
    if ([oldNotifications count] > 0) 
     [app cancelAllLocalNotifications]; 

    // Create a new notification. 
    UILocalNotification* alarm = [[UILocalNotification alloc] init]; 
    if (alarm) 
    { 
     alarm.fireDate = theDate; 
     alarm.timeZone = [NSTimeZone defaultTimeZone]; 
     alarm.repeatInterval = 0; 
     alarm.soundName = @"sonar"; 
     alarm.alertBody = @"Background task complete, tap to show app" ; 

     [app scheduleLocalNotification:alarm]; 
    } 

從蘋果文檔: 「通知是指被暫停的應用程序的方式,是在後臺,或不運行,以獲得用戶的關注應用程序可以使用本地通知顯示提醒,播放聲音。 ,標記應用程序的圖標或這三者的組合,例如,鬧鐘應用程序可能會使用本地通知來播放警報聲音並顯示警報以禁用警報,當向用戶發送通知時,用戶必須決定信息是否允許應用程序回到前臺(如果應用程序已經在前臺運行,本地通知悄悄地發送到應用程序,而不是用戶。)「

+0

謝謝,但我有興趣在沒有用戶輸入的情況下打開。是否有文檔說明您無法從後臺打開? – gjrwebber

+0

https://developer.apple.com/library/ios/documentation/iphone/conceptual/iphoneosprogrammingguide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html#//apple_ref/doc/uid/TP40007072-CH4-SW20 –

+1

看起來這是不可能的,雖然只有98%肯定這一點。我希望具體的doco說,如果沒有用戶輸入,應用程序不能從後臺進入前臺。但這只是暗示這一點。不管怎麼說,還是要謝謝你。 – gjrwebber

相關問題