Denna delen av 99 uppdateras inte längre utan har arkiverats inför framtiden som ett museum.
Här kan du läsa mer om varför.
Mac-nyheter hittar du på Macradion.com och forumet hittar du via Applebubblan.

Multitasking i iOS

Tråden skapades och har fått 86 svar. Det senaste inlägget skrevs .

I en annan tråd så landade jag i en diskussion kring multitaskingen i iOS 4 och det blev delvis en förvirrad tråd där vi blandade äpplen och ... plommon?

Det kändes som att några (kanske till och med många) verkar ha missuppfattat vad multitaskingen innebär och kanske framför allt "dockan med öppna program". I morse så hittade jag en bra sammanfattning som är läsvärd. Jag rekommenderar denna länk

iOS 4 walkthrough | TiPb

Några citat

At the iOS 4 event, Steve Jobs likened task managers (in the multitasking, not to-do sense) to styluses — if you need them there’s something wrong. Initially this created confusion in iOS 4 when it was noted, if you hold your finger down on multitasking apps, they’d jiggle and bring up a delete icon that, if tapped, removed them.

Apparently, this has nothing to do with task-killing (that’s managed by the OS) but simply removes the app from the switcher dock so users have some control over which apps are accessible there. (For example, removing several apps to bring a couple others closer together). Sounds awkward, but that’s the way it seems to be.

Dvs: Du slår inte av ett program genom att ta bort den från växlingsdockan (jag väntar på ett bra svenskt namn för denna) - du bara tar bort den från listan.

Kör program i bakgrunden eller inte?

As to how it works, instead of a traditional “leave full apps running in the background” approach, Apple instead chose to implement a more restricted but, they felt, better performing and power friendly solution involving 7 specific background API (application programming interfaces.)

samt

There’s another API for task completion so that, for example, if you’re uploading a picture to Twitter and leave the app, it can register a thread to keep uploading the picture in the background while you do something else. That means the entire app doesn’t have to keep running, freeing up memory and lightening battery load, and even the thread will terminate when the upload is done.

Så - ja, det kommer att finnas aktiviteter som körs i bakgrunden under vissa definerade förutsättningar.

Men - nej, att ta bort ett program från växlingsdockan innebär inte att du gör "quit" på programmet - det innebär bara att du plockar bort det från listan, programmet har redan "quittat" - om du tar bort ett program och sedan startar programmet från hemskärmen så kommer det att vara i samma startläge som om du hade startat det från listan.

Innebär detta att multitaskingen inte är färdig i 4.0 och borde förbättras i 4.1?

Min uppfattning är att det kommer garanterat att komma förbättringar i framtiden - men det hela verkar genomtänkt och håller ihop redan i 4.0.

Dessa API:er är också skälet till att jag inte tror på att det är särskilt lätt att komma med en generell inställning för att ha "multitasking på/av" eftersom en sådan sak skulle slå ganska hårt in i hela OS:et

Är det ok att ta upp andra saker kring "multitasking" i iOS4 i denna tråd? Jag har några punkter i så fall.

Ursprungligen av Adrian B;:

Är det ok att ta upp andra saker kring "multitasking" i iOS4 i denna tråd? Jag har några punkter i så fall.

Jag har ingenting emot det

Ursprungligen av BlackSmp:

Jag har ingenting emot det

Nu var jag lite sen att komma tillbaka till tråden och Markus K hade redan tagit upp lite av det jag skulle säga, men detta skrev jag förut, så jag postar det ändå:

1) Multitasking i iOS 4 kräver att programmen är uppdaterade för anropen till API:erna. Detta är viktigt att komma ihåg eftersom man lätt kan tro att iOS 4 innebär att programmen automatiskt kan börja spela musik i bakgrunden (Spotify t.ex.), ligga i standby utan att startas om osv.

Antagligen kommer många utvecklare att släppa uppdateringar av sina program i tid innan iOS 4 släpps (Apple har precis börjat ta emot sådana uppdateringar). Men för de program som inte blir uppdaterade kan man alltså inte dra nytta av multitaskingen. Jag tror en del inte har förstått det och kommer att bli besvikna på funktionen i början, beroende på vilka program de använder.

2) Även om Apple "ljuger" när de kallar det multitasking så förstår jag varför, för i praktiken för användaren så är det samma sak som äkta multitasking (dvs full frihet att köra bakgrundsprocesser), men genomfört på ett mycket mera effektivt sätt.

Dock ställer det till problem när användarna förväntar sig att ett program ska kunna göra en viss sak i bakgrunden men inte klarar av det - på grund av att Apples API:er inte tillåter det - och tar då ut detta över utvecklaren (t.ex. genom dåligt betyg i App Store). Marco Arment (killen bakom Tumblr och Instapaper) skriver om detta problem:

I’ve already received multiple emails from people who are excited for iOS 4’s multitasking because they can’t wait for this to finally stop being an issue, because they think Instapaper will be able to download articles periodically in the background.

It’s painful to respond, crushing their hopes, to tell them that the iOS multitasking system doesn’t allow me to do that.

By naming these features “multitasking”, Apple has set customers’ expectations to include what apps can do in a traditional computer multitasking environment.

It’s going to mislead people into expecting such behavior from apps, but we can’t actually deliver most of it.

Some people will notice that no apps can do these things and properly focus their disappointment on Apple. But many others will only notice the shortcomings in one particular app that they need to do the “impossible” and blame that application, leading to dissatisfaction and negative thoughts about the app.

  • Medlem
  • 2010-06-14 09:56

På engelska (för att öva inför semestrar utomlands)
If you want to kill an app on 4.0, double tap the home button then hold your finger on a running app and then hit the minus bubble to "quit" the app.

  • Medlem
  • International user
  • 2010-06-14 17:40
Ursprungligen av DrDip:

På engelska (för att öva inför semestrar utomlands)
If you want to kill an app on 4.0, double tap the home button then hold your finger on a running app and then hit the minus bubble to "quit" the app.

Läste du ens första inlägget?

Initially this created confusion in iOS 4 when it was noted, if you hold your finger down on multitasking apps, they’d jiggle and bring up a delete icon that, if tapped, removed them.

Apparently, this has nothing to do with task-killing (that’s managed by the OS) but simply removes the app from the switcher dock so users have some control over which apps are accessible there. (For example, removing several apps to bring a couple others closer together).

  • Medlem
  • 2010-06-14 22:07
Ursprungligen av zappee:

Läste du ens första inlägget?
… if tapped, removed them … this has nothing to do with task-killing…

Är inte detta Twitter..?
(Förlåt)

Ursprungligen av sahlback;:

Blir kul när någon gör om Vuvuzula-appen så att när man väl startat den så kommer den att tuta tills batteriet dör. Ta bort ikonen i docken och Vuvuzulan tutar på i sann multitaskanda utan möjlighet att stänga av.

Två saker

1: Du kan alltid starta appen från hemskärmen, det är samma sak som att göra det från dockan

2: Hur ska du få appen godkänd?

3: Vilket api hade du tänkt att använda för att få ut Vuvuzulaljudet i bakgrunden och som Apple har glömt bort att ordna det är möjligt att slå av?

Senast redigerat 2010-06-14 22:23
  • Medlem
  • Stockholm
  • 2010-06-14 22:18
Ursprungligen av sahlback:

Blir kul när någon gör om Vuvuzula-appen så att när man väl startat den så kommer den att tuta tills batteriet dör. Ta bort ikonen i docken och Vuvuzulan tutar på i sann multitaskanda utan möjlighet att stänga av.

Samt det går faktiskt att starta om iphonen.

Ursprungligen av 20hz:

Samt det går faktiskt att starta om iphonen.

och att tvångsavsluta program.

  • Medlem
  • International user
  • 2010-06-14 23:01
Ursprungligen av sahlback:

Blir kul när någon gör om Vuvuzula-appen så att när man väl startat den så kommer den att tuta tills batteriet dör. Ta bort ikonen i docken och Vuvuzulan tutar på i sann multitaskanda utan möjlighet att stänga av.

Det kommer aldrig att fungera så för att det finns inget API som används. Det enda som man skulle kunna göra är att streama vuvuzela ljudet över internet.

//Rob

Jag ramlade på mer intressant läsning

Citat:

I’ve already received multiple emails from people who are excited for iOS 4’s multitasking because they can’t wait for this to finally stop being an issue, because they think Instapaper will be able to download articles periodically in the background.

It’s painful to respond, crushing their hopes, to tell them that the iOS multitasking system doesn’t allow me to do that.

By naming these features “multitasking”, Apple has set customers’ expectations to include what apps can do in a traditional computer multitasking environment.

It’s going to mislead people into expecting such behavior from apps, but we can’t actually deliver most of it.

Some people will notice that no apps can do these things and properly focus their disappointment on Apple. But many others will only notice the shortcomings in one particular app that they need to do the “impossible” and blame that application, leading to dissatisfaction and negative thoughts about the app.1

Nu skriver jag detta på Ipaden och saknar fast application switch så jag kan inte kopiera in text plus länkar på ett enkelt sätt;)

  • Oregistrerad
  • 2010-06-15 00:31
Ursprungligen av sahlback:

Kunna växla fram och tillbaka snabbt mellan program är ju bra i sig istället för att leta efter programikoner på 11 olika sidor, men det har inget med multitasking att göra.

Väl sagt. Jag blev faktiskt irriterad då ett par program som jag "trodde" multitaskade faktiskt kördes i bakgrunden för att upptäcka att när jag "switchade tillbaka" så startade dom om precis från början.

Detta kommer ju ändras för 4.0 kompatibla program då dom kommer att frysas, minnet kommer säkert att dumpas till disk för att laddas in i RAM igen när programmet startar (liknande gå-i-vila-mode). Nu förstår jag varför steve sa ordet "Pause" i sina presentationer också..

Att steve kallar det Multitasking är ju (Pardon-my-french) skitsnack och vi kan bara hoppas att windows världen upptäcker detta så kommer en flod av flame slå mot apple.

Då fungerade ju background enabler i cyndia precis som det ska göra - lät apps köras i bakgrunden.

Jag har en annan uppfattning och föredrar apples lösning. Trots allt så är det väldigt få tjänster som du behöver i bakgrunden.

Möjligen så är det bakgrundsnerladdning i appar typ Instapaper som saknas men annars så tror jag mer på Apples lösning än backgrounders

Att jobs kallad det multitasking är lika mycket skitsnack som det Google håller på med -det är marknadsföring och PR - helt naturligt

  • Oregistrerad
  • 2010-06-15 10:21
Ursprungligen av BlackSmp:

Att jobs kallad det multitasking är lika mycket skitsnack som det Google håller på med -det är marknadsföring och PR - helt naturligt

Du menar att det är helt ok att ljuga i marknadsföring? Nästa gång kan steve säga att OSX kommer få Blueray stöd - fast det inte alls kommer få det?

Ursprungligen av studiox:

Du menar att det är helt ok att ljuga i marknadsföring? Nästa gång kan steve säga att OSX kommer få Blueray stöd - fast det inte alls kommer få det?

Nej, det menar jag inte och det är inte lögn. Iphone/Ipad kan multitaska och har kunnat det från dag ett.

Ursprungligen av BlackSmp:

Nej, det menar jag inte och det är inte lögn. Iphone/Ipad kan multitaska och har kunnat det från dag ett.

Menar du det faktum att kärnan kan tidsdelad multikörning? Det är ju jättebra förutom att den inte exponerar den möjligheten till något tredjepartsprogram och därmed inte kan användas.

Det som Jobs säger är multikörning i IOS 4 är inte det minsta multikörning. Vad det gör är att det löser nästan samma problem med en helt annan lösning än multikörning. Men multikörning innebär så mycket mer än vad det iOS 4 kommer att erbjuda tredjepartsprogram. Att kalla det för multikörning är som att kalla en penna för en dator eftersom båda kan användas till att skriva med.

  • Medlem
  • International user
  • 2010-06-15 09:49

Man kan inte jämföra iPhone med en dator. Det viktigaste på en mobil är batteritiden och du jobbar inte på den som på en dator. Man måste inte ha flera program öppna på en gång. Som iPhone fungerar nu har visat sig vara väldigt effektivt. Förutom på vissa punkter. Ladda ner/upp filer, lyssna på musik över internet och voip. Och det är de saker som Apple gör att de får användas i bakgrunden. Allt annat måste inte köra i bakgrunden och ta upp minne och onödigt processor kraft.

//Rob

  • Oregistrerad
  • 2010-06-15 10:20
Ursprungligen av Robo-X:

Man kan inte jämföra iPhone med en dator. Det viktigaste på en mobil är batteritiden och du jobbar inte på den som på en dator.

Varför ska man ha en smartphone om man inte vill att den ska bete sig som en dator??
Många använder smartphones som arbetsredskap andra köper en iphone bara för dom har för mycket pengar och är dumma i huvudet.

Jag tillhör kategorin som använder min telefon till att utföra arbetsuppdrag.

Ursprungligen av studiox:

Varför ska man ha en smartphone om man inte vill att den ska bete sig som en dator??
Många använder smartphones som arbetsredskap andra köper en iphone bara för dom har för mycket pengar och är dumma i huvudet.

Jag tillhör kategorin som använder min telefon till att utföra arbetsuppdrag.

Som svar på din första fråga: Därför att det inte är en laptop eller en stationär dator och den har andra fysiska begränsingar än vad dessa har

Inte ens en Androidbaserad telefon beter sig som en dator

För hantverkare finns skruvmejslar och elektriska skruvdragare. För tygre/repetitiva jobb tar dom med sig skruvdragaren (=laptop). Sånt är livet. man kan inte göra allt på en liten handenhet och man kommer aldrig någonsin att kunna göra allt på en liten handenhet.

Ursprungligen av studiox:

Varför ska man ha en smartphone om man inte vill att den ska bete sig som en dator??
Många använder smartphones som arbetsredskap andra köper en iphone bara för dom har för mycket pengar och är dumma i huvudet.

Jag tillhör kategorin som använder min telefon till att utföra arbetsuppdrag.

Du kan lyssna på musik och skriva mail samtidigt. Du kan ladda hem nya appar samtidigt som du gör annat. Det är väl multitasking? Det går att använda, det kan du göra redan idag. Vilket innebär att han ljuger inte, vilket var det som jag påpekade. Att denna möjlighet inte är tillgänglig för alla program är en annan sak.

Detta är typisk marknadsföring. Och för en användare så kommer vi i de allra flesta fall inte se skillnad på de valda tekniska lösningarna.

  • Oregistrerad
  • 2010-06-15 13:17
Ursprungligen av BlackSmp:

Du kan lyssna på musik och skriva mail samtidigt. Du kan ladda hem nya appar samtidigt som du gör annat. Det är väl multitasking? Det går att använda, det kan du göra redan idag. Vilket innebär att han ljuger inte, vilket var det som jag påpekade.

Så du menar att Steve i sin keynote berättar om en funktion och presenterar den som en nyhet fast den funnits i telefonen i fyra år - Det är väl en, för att använda samma argumentation som tidigare är - en PR misslyckande. Ungefär som att steve nu skulle säga att alla imac's även innehåller en Bluray spelare dom senaste fyra åren fast vi glömde berätta det.

Ursprungligen av BlackSmp:

Du kan lyssna på musik och skriva mail samtidigt. Du kan ladda hem nya appar samtidigt som du gör annat. Det är väl multitasking? Det går att använda, det kan du göra redan idag. Vilket innebär att han ljuger inte, vilket var det som jag påpekade. Att denna möjlighet inte är tillgänglig för alla program är en annan sak.

Nu pratar du om olika saker. Du pratar om den tekniska multikörning som XNU och många andra moderna operativsystemskärnor klarar av. Men det var inte den som demonstrerades i april i år. Då gällde det uttryckligen den så kallade "multikörningen" som införs i iOS 4 och som inte är det minsta värt namnet.

Ursprungligen av Marcus K;:

Nu pratar du om olika saker. Du pratar om den tekniska multikörning som XNU och många andra moderna operativsystemskärnor klarar av. Men det var inte den som demonstrerades i april i år. Då gällde det uttryckligen den så kallade "multikörningen" som införs i iOS 4 och som inte är det minsta värt namnet.

Tyvärr så tror jag att du har fel. Det är detta som Jobs annonserade och demonstrerade i april. Ska vi gå tillbaka och titta? Jag har inte gjort det än sá jag går på mitt minne av presentationen. Det som var nyheten var att möjligheten för tredjepartsprogram att få tillgång till antal api:er.

Och implementationen är ingen överraskning för de som har följt med bland diverse tekniska bloggar

Men sak samma. Vi kan bråka hur mycket som helst om detta och hur vi ska definera multitasking eller inte men jag tror fortfarande att du får problem med att beslå Jobs med lögn i detta fall. De var nog mycket väl medvetna om exakt vad de sa och hur det var tänkt att det skulle tolkas.

Nu ska jag försöka låta bli denna aspekt av diskussionen. Den är rätt tråkig som Golflorp skriver.

Ursprungligen av BlackSmp:

Tyvärr så tror jag att du har fel. Det är detta som Jobs annonserade och demonstrerade i april. Ska vi gå tillbaka och titta? Jag har inte gjort det än sá jag går på mitt minne av presentationen. Det som var nyheten var att möjligheten för tredjepartsprogram att få tillgång till antal api:er.

Istället för att gissa kan vi ju diskutera vad det faktiskt innebär, och nej, det är inte XNUs tidsdelade multikörning som Jobs demonstrerade i april. Hade det varit den hade det inte behövts några särskilda API:er, då hade programmen direkt kunnat fortsätta att köra precis som Apples program.

Vad som faktiskt händer när du lämnar ett program på iOS 4 är att programmet får ett meddelande från operativsystemet som säger att programmet kommer att skickas till bakgrunden. Vad det innebär är att programmet blir fryst, det kommer fortfarande att finnas i minnet men får inga CPU-cykler allokerade. Det fina med det är att det går relativt snabbt att byta tillbaka till programmet och det är vad Apple kallar för fast app switching.

Det finns dock en möjlighet för programmet att göra en sak när det får det meddelandet. Det kan begära att få extra tid att göra klart vad det höll på med. Det rör sig på sin höjd om tio minuter och det är vad de kallar för task finishing. Efter att den tiden har gått ut blir programmet fryst till dess det startas igen, oavsett om det blev klar med vad det höll på med eller inte.

När ett program väl har blivit fryst är det dock inte säkert att det förblir fryst. Det kan när som helst tvångsavslutas av operativsystemet ifall ett annat program behöver minnet. När du återigen startar det kommer det att starta om från början, i bästa fall har programmet själv hunnit sparat undan vilket tillstånd det befann sig i innan det hann avslutas, i annat fall blir det som att starta programmet från början.

Precis som tidigare har programmet möjlighet att använda push notifications. Det innebär att en extern server kan pinga telefonen och ge den en möjlighet att visa en dialogruta, en "badge" och/eller spela upp ett ljud. Nytt med iOS 4 är dock att du numera även kan göra local notifications, d.v.s. programmet kan själv be operativsystemet att göra samma sak vid en viss tid. Detta handlar dock bara om att visa ett meddelande eller liknande, det kan inte användas för att köra någon egen kod utan användaren måste själv starta programmet i så fall.

Det finns dock tre saker som kan göras i bakgrunden. Program som t. ex. Spotify, TomTom och Skype har väldigt speciella undantag som ger dem möjlighet att be operativsystemet göra saker åt dem i bakgrunden. T. ex. kan program som Skype be operativsystemet att lyssna på en specifik socker efter inkommande samtal. Om ett sådant kommer kan programmet vid det tillfället startas och ta hand om det. Notera dock att detta är väldigt specifika undantag och inte ger någon möjlighet annat än till de sagda områdena.

Rätta mig gärna om jag har fel men för de allra flesta program innebär detta i princip enbart att det i bästa fall går lite snabbare att byta mellan program man använder ofta. Bara för att programmen finns där i en lista betyder det inte att de är "igång".

Senast redigerat 2010-06-16 12:46
Ursprungligen av Marcus K:

Istället för att gissa kan vi ju diskutera vad det faktiskt innebär, och nej, det är inte XNUs tidsdelade multikörning som Jobs demonstrerade i april. Hade det varit den hade det inte behövts några särskilda API:er, då hade programmen direkt kunnat fortsätta att köra precis som Apples program.
.

Jag tror att vi syftade på olika saker. Jag läste att du skrev att det var skillnad på vad Jobs presenterade i april och vad som kom nu. Jag menade att det inte var skillnad på vad som presenterades och vad som levereras.

Men nu ser jag att du troligen menade att Jobs inte presenterade XNU tidsdelade multikörning i april, vilket är helt korrekt.

Då är det inte konstigt att vi inte begriper varandra eftersom vi diskuterar äpplen och päron.

Ursprungligen av BlackSmp:

Men nu ser jag att du troligen menade att Jobs inte presenterade XNU tidsdelade multikörning i april, vilket är helt korrekt.

Då är det inte konstigt att vi inte begriper varandra eftersom vi diskuterar äpplen och päron.

Ja, nu blev det ju mycket klarare. Så kan det lätt bli ibland.

Ursprungligen av BlackSmp:

Skämt å sido, du har glömt ett API tror jag, lokala notifieringar. Jobs m.fl talade om sju huvudpunkter.

Det tog jag faktiskt med. Nämnde det i samma stycke som push notifications.

Ursprungligen av Marcus K:

Rätta mig gärna om jag har fel men för de allra flesta program innebär detta i princip enbart att det i bästa fall går lite snabbare att byta mellan program man använder ofta. Bara för att programmen finns där i en lista betyder det inte att de är "igång".

Ungefär det som jag tycker att jag har försökt att säga hela tiden;) Det är därför som det inte finns något större behov av att kunna göra "quit" på programmen i dockan

Skämt å sido, du har glömt ett API tror jag, lokala notifieringar. Jobs m.fl talade om sju huvudpunkter

  • background audio

  • VoIP

  • Location update

  • task completion

  • push notificaitons

  • fast application switching

  • local notifications

Push Notifications fanns sedan tidigare och de verkar inte ha gjort några större förändringar där.

Men visst kan apps som ligger i "bakgrunden" reagera på inkommande samtal? Skype har ju enlösning som dom demade tidigare i vår. Så - helt nerstängda är ju inte appsen. Eller?

Bevaka tråden