Όλοι γνωρίζουμε το μάθημα "multitasking = η ικανότητα να εκτελείς πολλές διαδικασίες ταυτόχρονα". Το χρησιμοποιούμε στους υπολογιστές μας χωρίς να γνωρίζουμε ιδιαίτερα την παρουσία του. Η εναλλαγή μεταξύ εφαρμογών ή παραθύρων μιας εφαρμογής πραγματοποιείται (για εμάς) σε πραγματικό χρόνο και θεωρούμε δεδομένη αυτή τη δυνατότητα του λειτουργικού συστήματος.
Διαφορετική εργασία
Το λειτουργικό σύστημα εκχωρεί τον επεξεργαστή σε όλες τις εφαρμογές σε μικρά χρονικά διαστήματα. Αυτές οι χρονικές περίοδοι είναι τόσο μικρές που δεν μπορούμε να τις παρατηρήσουμε, οπότε φαίνεται σαν όλες οι εφαρμογές να χρησιμοποιούν τον επεξεργαστή ταυτόχρονα. Μπορεί να το πιστεύουμε multitasking στο iOS 4 λειτουργεί ακριβώς το ίδιο. Δεν είναι έτσι. Ο κύριος λόγος είναι φυσικά η χωρητικότητα της μπαταρίας. Αν όντως όλες οι εφαρμογές έμεναν να τρέχουν στο παρασκήνιο, πιθανότατα θα έπρεπε να ψάξουμε για πρίζα σε λίγες ώρες.
Οι περισσότερες εφαρμογές που είναι συμβατές με το iOS 4 τίθενται σε "αναστολή λειτουργίας" ή τίθενται σε κατάσταση αναστολής λειτουργίας αφού πατήσετε το κουμπί Home. Μια αναλογία μπορεί να είναι το κλείσιμο του καπακιού ενός φορητού υπολογιστή, το οποίο μεταβαίνει αμέσως σε κατάσταση αναστολής λειτουργίας. Μετά το άνοιγμα του καπακιού, ο φορητός υπολογιστής ξυπνά και όλα είναι ακριβώς στην ίδια κατάσταση όπως πριν κλείσει το καπάκι. Επιπλέον, υπάρχουν εφαρμογές όπου το πάτημα του κουμπιού Home προκαλεί το τέλος τους. Και με αυτό εννοούμε έναν πραγματικό τερματισμό. Οι προγραμματιστές έχουν τη δυνατότητα να επιλέξουν ποια από αυτές τις μεθόδους να χρησιμοποιήσουν.
Υπάρχει όμως και μια άλλη κατηγορία εφαρμογών. Αυτές είναι οι εφαρμογές που τρέχουν πραγματικά στο παρασκήνιο, παρόλο που κάνετε κάτι εντελώς διαφορετικό στο iDevice σας. Το Skype είναι ένα καλό παράδειγμα γιατί χρειάζεται συνεχή σύνδεση στο Διαδίκτυο. Άλλα παραδείγματα θα μπορούσαν να είναι εφαρμογές που παίζουν μουσική υπόκρουση (Pandora) ή εφαρμογές που απαιτούν συνεχή χρήση GPS. Ναι, αυτές οι εφαρμογές εξαντλούν την μπαταρία σας ακόμα και όταν εκτελούνται στο παρασκήνιο.
Κοιμηθείτε ή καταρρίψτε;
Ορισμένες εφαρμογές συμβατές με iOS 4, οι οποίες θα πρέπει να τεθούν σε κατάσταση αναστολής λειτουργίας (να τεθούν σε "αναστολή") αφού πατήσετε το κουμπί Αρχική σελίδα, συνεχίζουν να εκτελούνται στο παρασκήνιο. Η Apple έδωσε στους προγραμματιστές ακριβώς δέκα λεπτά για να ολοκληρώσει την εργασία της, όποια κι αν ήταν αυτή. Ας υποθέσουμε ότι κάνετε λήψη ενός αρχείου στο GoodReader. Ξαφνικά κάποιος θέλει να σας καλέσει και εσείς απλά πρέπει να αποδεχτείτε αυτή τη σημαντική κλήση. Η κλήση δεν κράτησε πάνω από δέκα λεπτά, θα επιστρέψετε στην εφαρμογή GoodReader. Το αρχείο μπορεί να έχει ήδη ληφθεί ή ακόμα γίνεται λήψη. Τι γίνεται αν η κλήση διαρκεί περισσότερο από δέκα λεπτά; Η εφαρμογή, στην περίπτωσή μας το GoodReader, θα πρέπει να σταματήσει τη δραστηριότητά της και να πει στο iOS ότι μπορεί να τεθεί σε αδράνεια. Αν δεν το κάνει, θα τερματιστεί ανελέητα από το ίδιο το iOS.
Τώρα ξέρετε τη διαφορά μεταξύ "κινητού" και "επιτραπέζιου" πολλαπλών εργασιών. Ενώ η ρευστότητα και η ταχύτητα εναλλαγής μεταξύ εφαρμογών είναι σημαντικές για έναν υπολογιστή, η διάρκεια ζωής της μπαταρίας είναι πάντα το πιο σημαντικό πράγμα για φορητές συσκευές. Το multitasking έπρεπε επίσης να προσαρμοστεί σε αυτό το γεγονός. Επομένως, αφού διαβάσετε αυτό το άρθρο, εάν πατήσετε δύο φορές το κουμπί Αρχική σελίδα, δεν θα βλέπετε πλέον τη «μπάρα των εφαρμογών που εκτελούνται στο παρασκήνιο», αλλά ουσιαστικά μόνο τη «λίστα με τις εφαρμογές που χρησιμοποιήθηκαν πρόσφατα».
Συγγραφέας: Daniel HruškaΠηγή: onemoretap.com
χμμ, ενδιαφέρον :) Πάντα πίστευα ότι ήταν πάντα παρόμοιο με το πώς μπορεί να γίνει στο Unix. Ότι στην εφαρμογή έχει εκχωρηθεί μηδενικός χρόνος CPU και η διαδικασία βρίσκεται απλώς στη μνήμη, έχουν εκχωρηθεί όλοι οι πόροι. οπότε έπρεπε να πατήσω δύο φορές το home και να σταματήσω αμέσως την εφαρμογή για να τη διαγράψω. Αυτό σημαίνει λοιπόν ότι ακόμα κι αν υπάρχει ένα εικονίδιο εφαρμογής στο κάτω κρυφό φύλλο, η εφαρμογή είναι ακόμα κλειστή εδώ και πολύ καιρό (μετά από 10 λεπτά);
Στην κάτω λίστα, υπάρχουν απλώς οι εφαρμογές που άνοιξαν πιο πρόσφατα, όπου ορισμένες από αυτές μπορούν ακόμα να εκτελεστούν, άλλες έχουν ανασταλεί και ορισμένες τερματίζονται εντελώς. Η μη αυτόματη κατάργηση της εφαρμογής από τη λίστα έχει την "παρενέργεια" ότι εάν τύχει να εκτελείται (ή ανασταλεί) θα τερματιστεί.
Η εφαρμογή πρέπει να πει στον εαυτό της για αυτά τα 10 επιπλέον λεπτά και δεν είναι εγγυημένο ότι θα τα πάρει.
Λοιπόν, αυτό δεν απαλλάχθηκε από την εμμονή μου με το κλείσιμο της εφαρμογής από τη λίστα (τι κι αν κατά λάθος τρώει πόρους, σωστά; :-D)
Καταλαβαίνω ότι τα 10 λεπτά είναι για εφαρμογές που πρέπει να λειτουργούν στο παρασκήνιο και δεν εμπίπτουν στην κατηγορία "skype, GPS και αναπαραγωγή μουσικής". Άλλες εφαρμογές μεταβαίνουν σε λειτουργία αναστολής και παραμένουν στη μνήμη μέχρι να χρειαστεί η μνήμη για άλλα πράγματα.
Η λειτουργία αναστολής έχει το πλεονέκτημα ότι εάν χρειαστεί να σκοτώσετε την εφαρμογή, δεν θα χάσετε τα δεδομένα της, όλα θα αποθηκευτούν τη στιγμή της μετάβασης σε αναστολή.
ή, στην περίπτωση π.χ. αναπαραγωγής, το αντίστοιχο της εντολής bg / fg
Και τι γίνεται με τη συσκευή αναπαραγωγής ή άλλες εφαρμογές που εκτελούνται στο παρασκήνιο για οποιοδήποτε χρονικό διάστημα; Θέλω να πω, μπορώ να "επιλέξω" ως προγραμματιστής, ή αυτό πρέπει να εγκριθεί από την Apple με κάποιο τρόπο;
Προκειμένου η εφαρμογή να εκτελείται πραγματικά στο παρασκήνιο για απεριόριστο χρόνο, πρέπει να κάνει (εγγραφεί) μία από τις ακόλουθες ενέργειες:
– Χρήση υπηρεσιών τοποθεσίας (GPS)
– Παίξτε μουσική στο παρασκήνιο
– Χρήση VOIP (Voice over IP)
Σύμφωνα με τον τίτλο (μια ματιά κάτω από το καπό), περίμενα το άρθρο να περιέχει μια κάπως πιο εκτενή εξήγηση με τεχνικές λεπτομέρειες. Αυτό μοιάζει περισσότερο με ένα perex στο άρθρο. Αν είναι perex, πότε είναι η συνέχεια; Μπορείτε να λάβετε επιστροφή χρημάτων; :-)
και τι θα θέλατε να μάθετε πιο αναλυτικά;
Από ένα άρθρο με "under the hood" στον τίτλο, θα περίμενα μια λεπτομερή τεχνική περιγραφή (ο συγγραφέας θα μπορούσε να αναλύσει, για παράδειγμα, τα γενικά έξοδα κατά την εναλλαγή εφαρμογών ή τον τρόπο διαχείρισης της ταυτόχρονης πρόσβασης στους πόρους του συστήματος), μια σύγκριση με άλλα μοντέλα (για παράδειγμα, με jailbrock iPhone). Είναι ιδανικό να το υποστηρίξετε με κάποιες μετρήσεις. Απλώς περίμενα πολλά περισσότερα από ένα άρθρο που έχει «κάτω από την κουκούλα» στον τίτλο του από αυτή την πολύ επιφανειακή περιγραφή.
Υπάρχει κάποιος πελάτης icq που να τρέχει συνέχεια στο παρασκήνιο όπως το skype και να μην πέφτει η σύνδεση;
η εφαρμογή έχει 10 δευτερόλεπτα για να μπει σε λειτουργία αναστολής, όχι 10 λεπτά... και κατά τη διάρκεια αυτής της διαδικασίας, ορισμένα μέρη μπορεί ή όχι να "κολλάνε" σε υπηρεσίες υποστήριξης, μερικά από τα οποία έχουν ήδη αναφερθεί παραπάνω - αυτό αποκαλεί η Apple "έξυπνο" "πολλαπλών εργασιών.... τότε το σύστημα την κατέρριψε
Η εφαρμογή ενδέχεται να απαιτεί επιπλέον χρόνο εάν κάτι γίνεται λήψη, μεταφόρτωση ή επεξεργασία. Δεν έχει καμία σχέση με το GPS, το VoIP ή την αναπαραγωγή μουσικής, τα οποία λειτουργούν σε μινιμαλιστική λειτουργία για απεριόριστο χρόνο.