Ο κύκλος ζωής μιας εφαρμογής Android

βασικός οδηγός-προγραμματισμός-android-2

Όταν ξεκινάτε τον προγραμματισμό σε μια γλώσσα όπως C ++ ή Java, το πρώτο πράγμα που διδάσκεται είναι η κύρια μέθοδος, το σημείο που θα καλέσει το λειτουργικό σύστημα κατά την έναρξη της εφαρμογής μας.

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

Ο κύκλος ζωής του Android ακολουθεί αυτό το σχήμα:

android-κύκλο ζωής

Συμβάντα κύκλου ζωής

  1. onCreate (δέσμη)
    • Αντιπροσωπεύει τη στιγμή που η δραστηριότητα δημιουργείται. Αυτή η μέθοδος συνήθως δημιουργείται από τον οδηγό κατά τη δημιουργία μιας νέας δραστηριότητας στο Android και είναι εκεί όπου θα δημιουργήσουμε ό, τι θα χρειαστεί η δραστηριότητα. Εάν στο παρελθόν έχουμε αποθηκεύσει τα δεδομένα δραστηριότητας σε ένα αντικείμενο Bundle, μπορούμε να τα χρησιμοποιήσουμε για να τα αναδημιουργήσουμε. Κανονικά δεν θα το χρησιμοποιήσουμε.
  2. onStart ()
    • Η δραστηριότητα θα πάει στο να είστε στην οθόνη, αν και δεν είναι απαραίτητα ορατό. Αν προχωρήσουμε από μια στάση, θα περάσουμε πρώτα στο onRestart ().
  3. onRestart ()
    • Προηγούμενο στο onStart () όταν προερχόμαστε από μια κλήση στο onStop ().
  4. Επανάληψη ()
    • Η δραστηριότητα θα ξεκινήσει απαντήστε στην αλληλεπίδραση του χρήστη.
  5. onPause ()
    • Η δραστηριότητα θα σταματήστε να απαντάτε στην αλληλεπίδραση των χρηστών.
  6. onStop ()
    • Η δραστηριότητα έχει ολοκληρωθεί Ιστορικό.
  7. onDestroy ()
    • Δραστηριότητα θα καταστραφεί και οι πόροι σας απελευθερώθηκαν.

Όταν πρέπει να εφαρμόσουμε μία από αυτές τις μεθόδους, θα το κάνουμε προσθέτοντας στη δραστηριότητά μας με αυτά τα προφίλ:

Δημόσια τάξη MyActivity επεκτείνει τη Δραστηριότητα {protected void onCreate (Bundle saveInstanceState) {super.onCreate (saveInstanceState) ...} προστατευμένο κενό στοStart () {super.onStart (); ...} προστατευμένο άκυρο onRestart () {super.onRestart (); ...} προστατευμένο κενό στοResume () {super.onResume (); ...} προστατευμένο άκυρο onPause () {... super.onPause (); } προστατευμένο κενό στοStop () {... onStop (); } προστατευμένο κενό onDestroy () {... super.onDestroy (); }}

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

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

Η έννοια του onCreate είναι σαφής: είναι ο τόπος όπου θα φορτώσουμε τους πόρους που χρειαζόμαστε, τις απόψεις και οτιδήποτε άλλο χρειαζόμαστε. Για την έξοδο, η μόνη μέθοδος στην οποία θα επικεντρωθούμε είναι η onPause. Ο λόγος για την αποφυγή του onStop και του onDestroy είναι ότι δεν έχουμε κανέναν έλεγχο πάνω τους. Το onPause θα εκτελείται κάθε φορά που η εφαρμογή βγαίνει από το προσκήνιο, ενώ οι άλλες δύο θα εκτελούνται από το λειτουργικό σύστημα με βάση τις ανάγκες σας. Μπορεί να μην εκτελεστούν ποτέ! Αυτό γίνεται για να αποφευχθεί το κόστος δημιουργίας της δραστηριότητας ξανά και ξανά εάν μεταβούμε από τη δραστηριότητα στην επιφάνεια εργασίας και το αντίστροφο και το λειτουργικό σύστημα θα απελευθερώσει τους πόρους που χρησιμοποιούνται μόνο εάν τους χρειάζεται και δεν χρειάζεται να παρευρεθεί σε όλους τις ανοιχτές διαδικασίες.

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

Οι άλλες μέθοδοι δεν θα χρειαστεί να χρησιμοποιήσουμε πολύ. Μια κοινή περίπτωση στην οποία θα την χρειαζόμαστε θα είναι όταν ενσωματώνουμε βιβλιοθήκες τρίτων, όπως το Facebook ή το Flurry. Σε αυτές τις περιπτώσεις, θα μας ζητηθεί να αντιστοιχίσουμε τις μεθόδους της δραστηριότητάς μας με τον κωδικό σας. Για παράδειγμα, για να καταχωρήσετε μια συνεδρία Flurry θα μας ζητηθεί να ξεκινήσουμε τη συνεδρία με τη μέθοδο onStart.

Μερικές χρήσιμες ιδέες

  • Θυμηθείτε τι είναι κάθε εκδήλωση. Θα χρειαστείτε πάντα onCreate, και αρκετά συχνά θα χρειαστείτε onPause και onResume για να σταματήσετε και να επανεκκινήσετε τις πιο απαιτητικές υπηρεσίες.
  • Μην αγγίζετε τα άλλα συμβάντα αν δεν το χρειάζεστε ρητά.
  • Μην εμπιστεύεστε onStop και onDestroy, μπορεί να μην κληθούν ποτέ. Αποθηκεύστε όλα όσα χρειάζεστε στο onPause.
  • Αποφύγετε τη χρήση μη τελικών στατικών μεταβλητών. Η εφαρμογή μπορεί ακόμα να φορτωθεί όταν επιστρέψετε και θα διατηρήσει τις τιμές που άφησαν πίσω. Εάν δεν έχετε άλλη επιλογή από το να τις χρησιμοποιήσετε, φροντίστε να επαναφέρετε τις τιμές τους όταν επιστρέψετε στο προσκήνιο.

Περισσότερες πληροφορίες - Βασικός οδηγός προγραμματισμού στο Android


Το περιεχόμενο του άρθρου συμμορφώνεται με τις αρχές μας συντακτική ηθική. Για να αναφέρετε ένα σφάλμα κάντε κλικ Aquí.

Γίνε ο πρώτος που θα σχολιάσει

Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί.

*

*

  1. Υπεύθυνος για τα δεδομένα: Πραγματικό ιστολόγιο
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.

bool (αλήθεια)