Wpis z mikrobloga

Pytanie za 100 pkt.
Czy ktoś robił kiedyś aplikacje do działania w tle np. stoper który co 30 sekund będzie powiadamiał dźwiękiem?
Problem jest bo ios zabija aplikacje po 30 sekundach niekatywnosci i czytałam że rozwiązaniem na to jest "puszczenie" muzyki w tle takiej ciszy. Czy ktoś coś wie?

#programowanie #ios #swift #flutter
  • 6
@hanyska2: Coś takiego kojarzy mi się z background taskami. I nie każda apka w tle jest ubijana.
https://developer.apple.com/documentation/backgroundtasks
Pamiętam, że ostatnio coś zmieniali, ale to nie jest takie zero jedynkowe, że po 30 sekundach Apple zawsze ubija apkę.
Puszczenie apki muzycznej z zerowym tłem może być problem z przejściem przez review od Apple, bo to może wpływać na aplikacje trzecie. Przykładowo, taka apka by się bardzo gryzła ze Spotify czy innymi
@hanyska2: Pamiętam że zaskakujące było dla mnie to że na Android, jak się minimalizowało apke to się zatrzymywał główny wątek, natomiast w iOS wszystkie wątki się zatrzymywały i nie dało się w żaden sposób utrzymać połączenia z serwerem, trzeba było korzystać z tego co daje iOS np notyfikacje
@hanyska2: pewnie jedyna przyzwoitą opcją będzie trzymanie aplikacji ciągle aktywnejz włączonym ekranem. Za to nie powinni się przyczepić na review.
UIApplication.shared.isIdleTimerDisabled = true

Background taski są tylko po to ażeby dev mógł sobie zachować zmiany w tle zanim appka będzie ubita. I nie ma reguły ile czasu dostaniesz. Może być 30s ale jeśli bateria jest słaba to możesz dostać i 5s.