2012-12-21 15 views
10

Mam aplikację na iPhone'a, którą muszę automatycznie wysłać do tła. Aplikacja jest zdefiniowana za pomocą klawisza VOIP w trybach tła, więc powinna działać w tle. Potrzebuję konkretnej aplikacji, aby wywoływanie wyjścia (0) było złe.Czy jest jakiś sposób, aby programowo wysłać moją aplikację iPhone'a w tle?

Aplikacja nie będzie rozpowszechniana za pośrednictwem sklepu z aplikacjami, więc używanie prywatnego interfejsu API jest prawidłowe.

czytałem o UIApplication wypowiedzenia i UIApplication terminateWithSuccess ale nie wydają się być dostępne już

+1

pracy Dlaczego chciałby przesłać do app na tle!?!?!? Użytkownicy uruchamiają aplikację, po której użytkownik wyśle ​​aplikację na tło. Nie musisz wysyłać aplikacji w tle. Dodanie klawisza 'VOIP' do trybów tła spowoduje, że aplikacja będzie działać w tle i rozpocznie się, gdy urządzenie wykona reset. – rckoenes

+0

Jest to pożądane zachowanie, aby wysłać do tła automatycznie (możemy to zrobić na Androidzie), Również wiem wszystko o tym, jak działa VoIP, nie jest to problemem. – gheese

+0

Nie jest to możliwe, twoje wymagania nie są kompatybilne z systemem iOS. Tylko użytkownik może wyświetlać lub zamykać aplikację, naciskając przycisk home. – rckoenes

Odpowiedz

10

już odpowiedział całkiem dobrze tutaj:

Suspend the application

Jako że plakat napisał:

Zamykanie aplikacji lub wysyłanie jej w tle programowo narusza [Wytyczne interfejsu użytkownika iOS] [1], co zwykle nie wróżą dobrze, aby przejść przez t że proces przeglądu:

not Quit Programowo

Nigdy zamknąć aplikację iOS programowo, ponieważ ludzie mają tendencję interpretować tego jako katastrofy. Jednak, jeśli okoliczności zewnętrzne uniemożliwiają działanie aplikacji jako zamierzonej , musisz poinformować użytkowników o tej sytuacji i wyjaśnić, co mogą z tym zrobić. W zależności od tego, jak poważna jest usterka aplikacji, , masz dwie możliwości.

Wyświetlany atrakcyjny ekran, który opisuje problem i sugeruje poprawkę . Ekran zapewnia informację zwrotną, która uspokaja użytkowników, że nie ma nic złego w Twojej aplikacji . Stawia użytkownikom kontrolę, pozwolić im zdecydować, czy chcą do podjęcia działań korygujących i kontynuować za pomocą aplikacji lub naciśnij przycisk Początek i otworzyć inną aplikacja

Jeśli tylko niektóre ze wszystkich funkcji aplikacji nie są działa, wyświetlać albo ekran, albo alert, gdy ludzie aktywują tę funkcję. Wyświetlanie Wyświetlanie alertu tylko wtedy, gdy ludzie próbują uzyskać dostęp do funkcji, która nie jest , która nie jest funkcją .

+0

Co powiedział. :) –

+0

Dzięki - już zbadałem trasę zawieszenia i stwierdziłem, że była ona nieodpowiednia, ponieważ właśnie to spowodowało, że aplikacja została zawieszona, potrzebuję przetwarzania w tle, aby kontynuować. W każdym razie po prostu potwierdza, że ​​nie jest to możliwe. – gheese

3

Podczas gdy zgadzam się z drugą odpowiedzią, że "nie powinieneś" wyjść programowo. Istnieje sposób, aby wyjść programowo.

* Disclaimer - Nie powinieneś tego robić.

exit(0); 

Nie ma możliwości umieszczenia aplikacji w tle bez naciskania przycisku home. Jeśli tak, możesz dodać flagę jailbreak do swojego pytania i zadać je.

Aby uzyskać więcej, sprawdź to zduplikowane pytanie, Proper way to exit application.

+0

Dzięki za potwierdzenie, podejrzewałem, że nie można utworzyć aplikacji w kodzie pod numerem – gheese

2

W Swift 3 skorzystać z poniższego kodu, urok

DispatchQueue.main.asyncAfter(deadline: .now()) { 
      UIApplication.shared.perform(#selector(NSXPCConnection.suspend)) 
     } 
+2

. Czy to przejdzie proces sprawdzania aplikacji? – Isuru

Powiązane problemy