9Aug

Τι ακριβώς συμβαίνει όταν μετακινείτε μια εφαρμογή Android από τη λίστα πρόσφατων εφαρμογών;

click fraud protection

Όταν σύρετε μια εφαρμογή από τη λίστα των εφαρμογών Android που εκτελούνται αυτήν τη στιγμή, τι ακριβώς συμβαίνει με την εφαρμογή και τα δεδομένα;Διαβάστε παρακάτω καθώς ερευνούμε.

Η σημερινή ερώτηση &Η συνάντηση απαντήσεων έρχεται σε επαφή με την ευγένεια του Android Enthusiast - μια υποδιαίρεση του Stack Exchange, μια κοινότητα-καθοδηγείται ομαδοποίηση Q & A ιστοσελίδες.

Η ερώτηση

Reader Eldarerathis για το Android είναι περίεργη για τη λειτουργία σάρωσης εφαρμογών που σας επιτρέπει να τραβήξετε τη λίστα των εφαρμογών που εκτελούνται μέσω του κουμπιού "σπίτι" και, στη συνέχεια, να τις σύρετε προς τα δεξιά, πιθανώς να τις κλείσετε:

Η πρόσφατη λίστα εφαρμογώνΤο Ice Cream Sandwich πρόσθεσε τη δυνατότητα να ξεφυλλίσουν τις εφαρμογές από τη λίστα, απορρίπτοντάς τους μόνιμα( και όσο γνωρίζω, αυτή είναι μια λειτουργία βανίλιας, όχι CM / Custom ROM).Η τεκμηρίωση και τα κυριώτερα σημεία της πλατφόρμας δεν φαίνεται να καλύπτουν τις λειτουργίες αυτής της λειτουργικότητας κάτω από την κουκούλα, αλλά είμαι περίεργος να μάθω τι κάνει πραγματικά το σύστημα.

instagram viewer

Περαιτέρω προσθήκη στην περιέργειά μου, αποφάσισα να κάνω μια γρήγορη δοκιμή: Ξεκίνησα τη μουσική σε μια εγκατάσταση CM9, στη συνέχεια στηρίζαμε από αυτήν.Στη συνέχεια, έλεγξα την πρόσφατη λίστα εφαρμογών και είδα ότι ήταν πράγματι εκεί( και στην κατάλληλη κατάσταση, με βάση τη μικρογραφία).Στη συνέχεια πήγα στις Ρυθμίσεις-> Εφαρμογές και η δύναμη σταμάτησε την εφαρμογή Μουσική, αλλά εξακολουθούσε να παρατίθεται στην πρόσφατη λίστα, με αποτέλεσμα να πιστεύω ότι δεν συνδέεται με διαδικασίες που παραμένουν στο παρασκήνιο.

Συνειδητοποιώντας τώρα ότι η Μουσική ίσως ήταν μια κακή επιλογή, έχω δοκιμάσει επίσης με την εφαρμογή USA Today.Αυτό έδειξε ουσιαστικά την ίδια συμπεριφορά και φάνηκε σαν να αναγκάστηκε να "επανεκκινήσει" μετά τη διακοπή της δύναμης( που έχει νόημα), αν και η μικρογραφία στην πρόσφατη λίστα εφαρμογών δεν αντανακλούσε αυτό( κρυμμένο, υποθέτω;).

Έτσι, τι συμβαίνει στην πραγματικότητα στο επίπεδο του λειτουργικού συστήματος, όταν μετακινείτε μια εφαρμογή από την πρόσφατη λίστα;Απλώς καταργεί τα δεδομένα της εφαρμογής από τη μνήμη RAM και τα σκουπίδια συλλέγουν, καταστρέφοντας την αποθηκευμένη κατάστασή της;

Τι ακριβώς συμβαίνει όταν ξεφυλλίσετε την εφαρμογή από τη λίστα;

Η απάντηση

συνδρομητής Android Enthusiast συντάκτης Austin Mills προσφέρει κάποια διορατικότητα:

Μετακίνηση εφαρμογές από την πρόσφατη λίστα εφαρμογών είναι βανίλια, και ναι, δεν είναι καλά τεκμηριωμένη.Αυτό ήταν το θέμα μιας αξιοπρεπούς συζήτησης σε διάφορα forums για το Android. .. η συναίνεση φαίνεται να περιγράφεται καλύτερα εδώ σε μερικά σχόλια: ότι η συμπεριφορά είναι παρόμοια αλλά όχι ακριβώς η ίδια με το κλείσιμο μιας εφαρμογής - γενικά( για εφαρμογές πουδεν καθορίζετε το ρητό χειρισμό του κουμπιού πίσω) είναι το ίδιο με το χτύπημα αρκετών χρόνων από μια εφαρμογή που εξέρχεστε από αυτήν.

Ο σύνδεσμος έχει κάποιες περισσότερες λεπτομέρειες σχετικά με τις λεπτομέρειες, αλλά συνολικά μπορείτε να το σκεφτείτε σαν να παραιτηθείτε από την εφαρμογή.

Συγκεκριμένα για την εφαρμογή Μουσική, πιστεύω ότι ξεκινά μια υπηρεσία, οπότε ενώ η ίδια η εργασία( η εφαρμογή Μουσική / UI) μπορεί να κλείσει, η υπηρεσία συνεχίζει να τρέχει στο παρασκήνιο, ώστε η μουσική σας να μην σταματήσει ξαφνικά μόνο επειδήέχει αποσαφηνιστεί για λόγους διαχείρισης της μνήμης.Αυτό μπορεί να έχει επηρεάσει αυτό που είδατε.

Στη συνέχεια, συμμετέχοντας στον κύκλο ερωτήσεων και απαντήσεων της ζωής, ο Eldarerathis επέστρεψε με κάποια δική του έρευνα για να ολοκληρώσει την απάντηση:

Φαίνεται ότι βρήκα τους μαγικούς όρους αναζήτησης που οδήγησαν σε ορισμένες εξηγήσεις από τους υπαλλήλους της Google.Συγκεκριμένα, βρήκα δυο διαφορετικά μέρη όπου η Dianne Hackborn εξηγεί τι συμβαίνει όταν βγάζετε κάτι από την πρόσφατη λίστα.Το πρώτο είναι ένα σχόλιο σε μία από τις αναρτήσεις της στο Google+:

[W] Το συγκεκριμένο κείμενο συμβαίνει όταν μετακινείτε από μια πρόσφατη εργασία:( 1) σκοτώνει οποιοδήποτε υπόβαθρο ή κενές διαδικασίες της εφαρμογής( δείτε εδώ για αυτό που σημαίνει)και( 2) χρησιμοποιεί το νέο API για να πει όλες τις υπηρεσίες της εφαρμογής σχετικά με την εργασία που καταργείται, ώστε να μπορεί να κάνει ό, τι κρίνει κατάλληλο.

Σημειώνει επίσης σε ένα σχόλιο στο blog:

Στην πραγματικότητα, η κατάργηση μιας καταχώρησης σε πρόσφατες εργασίες θα σκοτώσει όλες τις διαδικασίες υποβάθρου που υπάρχουν για τη διαδικασία.Δεν θα προκαλέσει άμεση διακοπή υπηρεσιών, αλλά υπάρχει ένα API για να διαπιστώσουν ότι η εργασία έχει αφαιρεθεί για να αποφασίσει αν θέλουν αυτό να σημαίνει ότι πρέπει να σταματήσουν.Αυτό γίνεται έτσι ώστε η κατάργηση λέει ότι η πρόσφατη εργασία μιας εφαρμογής ηλεκτρονικού ταχυδρομείου δεν θα την αναγκάσει να σταματήσει τον έλεγχο για το ηλεκτρονικό ταχυδρομείο.

Αν θέλετε πραγματικά να σταματήσετε τελείως μια εφαρμογή, μπορείτε να πατήσετε πατημένο τις πρόσφατες εργασίες για να μεταβείτε στις πληροφορίες της εφαρμογής και χτυπήστε τη δύναμη να σταματήσετε εκεί.Η διακοπή δύναμης είναι μια πλήρης καταστροφή της εφαρμογής - όλες οι διαδικασίες θανατωθούν, όλες οι υπηρεσίες θα σταματήσουν, όλες οι ειδοποιήσεις θα καταργηθούν, όλοι οι συναγερμοί θα καταργηθούν κλπ. Η εφαρμογή δεν επιτρέπεται να ξεκινήσει ξανά μέχρι να ζητηθεί ρητά.

Έτσι, φαίνεται πως η περίληψη μιας εφαρμογής από τη λίστα θα σκοτώσει πρώτα όλες τις διαδικασίες φόντου για την εφαρμογή και, στη συνέχεια, χρησιμοποιήστε το onTaskRemoved για να ειδοποιήσει την εφαρμογή ότι η εργασία φόντου καταργήθηκε.Σε αυτό το σημείο φαίνεται ότι εξαρτάται από την εφαρμογή να αποφασίσει τι συμβαίνει, οπότε υποθέτω ότι υπάρχει τεχνικά δεν είναι ένας σκληρός και γρήγορος κανόνας για το τι συμβαίνει με το app πέρα ​​από αυτό το σημείο.

Έχετε κάτι να προσθέσετε στην εξήγηση;Απενεργοποιήστε τα σχόλια.Θέλετε να διαβάσετε περισσότερες απαντήσεις από άλλους χρήστες τεχνολογίας Stack Exchange;Δείτε το πλήρες νήμα συζήτησης εδώ.