9Aug

מה בדיוק קורה כאשר אתה מחליק אנדרואיד App מתוך רשימת היישומים האחרונים?

כאשר אתה מחליק אפליקציה מרשימת אפליקציות Android שמופיעות כעת, מה בדיוק קורה ליישום ולנתונים?המשך לקרוא תוך כדי בדיקה.

שאלה של היום &הפגישה תשובה בא אלינו באדיבות אנדרואיד נלהב - חלוקה של סטאק שערי, קהילה מונחה קיבוץ של Q & אתרי אינטרנט.

הקורא אנדרואיד הקורא Eldarerathis הוא סקרן לגבי פונקציונליות להחליק את האפליקציה המאפשר לך למשוך את רשימת היישומים פועל באמצעות כפתור הבית ולאחר מכן לסחוב אותם ימינה, קרוב לוודאי לסגור אותם:

רשימת היישומים האחרונים בגלידה סנדוויץ 'הוסיף את היכולת לסחוב Apps מתוך הרשימה, ובכך לפטר אותם לצמיתות( ועד כמה שאני יודע זה פונקציה וניל, לא CM / ROM מותאם אישית).התיעוד ומדגיש את הפלטפורמה אינם מופיעים כדי לכסות את under-the-hood פועל של פונקציונליות זו, אבל אני סקרן לדעת מה היא באמת עושה המערכת.

נוסף על הסקרנות שלי, החלטתי לעשות בדיקה מהירה: התחלתי את המוסיקה על התקנת CM9, ואז נסוג.לאחר מכן בדקתי את רשימת היישומים האחרונים וראיתי שזה אכן קיים( ובמצב הנכון, על פי התמונה הממוזערת).אז נכנסתי אל הגדרות & gt; יישומים וכוח עצר את האפליקציה Music, אבל זה עדיין היה רשום ברשימה האחרונה, מה שמוביל אותי להאמין שזה לא קשור לתהליכים המתמשכים ברקע.

הבנתי עכשיו כי מוסיקה עשוי להיות בחירה גרועה, אני גם נבדק עם יישום Today Today.זה הציג בעצם את אותה התנהגות, וזה נראה כאילו הוא נאלץ "relaunch" לאחר כוח לעצור( מה הגיוני) למרות התמונות הממוזערות של רשימת היישומים האחרונים לא משקף את זה( במטמון, אני מנחש?).

אז, מה בעצם קורה ברמת מערכת ההפעלה בעת להחליק יישום מתוך הרשימה האחרונה?האם זה פשוט לנקות את הנתונים של היישום מתוך RAM ו זבל לאסוף אותו, להרוס את מצב הציל?

מה בדיוק קורה כשאתה מחליק את האפליקציה מהרשימה?

תשובות

תורם אנדרואיד תורם אוסטין מילס מציעה כמה תובנה:

Swiping Apps מתוך רשימת היישומים האחרונים היא וניל, וכן, לא מתועד היטב.זה היה הנושא של כמות סבירה של דיון בפורומים שונים של אנדרואיד. .. הקונצנזוס נראה המתואר בצורה הטובה ביותר כאן כמה הערות: כי התנהגות דומה אבל לא בדיוק אותו דבר כמו סגירה של יישום - באופן כללי( עבור יישומים כילא מגדירים מפורשת לחצן טיפול לאחור) זה אותו דבר כמו להכות בחזרה מספיק פעמים מתוך יישום שאתה יוצא ממנו.

הקישור יש כמה פרטים נוספים על הפרטים, אבל בסך הכל אתה יכול לחשוב על זה כמו לעזוב את היישום.

ספציפי לאפליקציית המוזיקה, אני מאמין שזה מתחיל שירות, ולכן בזמן שהמשימה עצמה( האפליקציה Music / UI) עשויה להיות סגורה, השירות ממשיך לפעול ברקע כך שהמוסיקה שלך לא תיפסק פתאום רק בגללהמשימה יש לנקות את הסיבות לניהול זיכרון.זה אולי השפיע על מה שראית.

לאחר מכן, כשהוא משתתף במעגל השאלות והתשובות של החיים, חזר אלדראתיס עם מחקר כלשהו שלו כדי לסדר את התשובה:

נראה כי מצאתי את מונחי החיפוש הקסומים שהובילו להסברים מסוימים של עובדי Google.באופן ספציפי, מצאתי כמה מקומות שונים בהם Dianne Hackborn מסביר מה קורה כאשר אתה לסחוב משהו מתוך הרשימה האחרונה.הראשונה היא תגובה על אחד מהפוסטים שלה ב- Google+:

[W] מתרחשת במיוחד כאשר אתה מחליף משימה אחרונה היא:( 1) הורג כל רקע או תהליכים ריקים של היישום( ראה כאן מה זה אומר),ו( 2) משתמש API החדש כדי לספר את כל השירותים של היישום על המשימה להיות מוסר כך שהוא יכול לעשות מה שהוא חושב שזה מתאים.

היא גם מציין הערה בבלוג:

למעשה, הסרת רשומה במשימות האחרונות יהרוג את כל תהליכי הרקע הקיימים עבור התהליך.זה לא גורם ישירות שירותים להפסיק, עם זאת יש API עבור אותם כדי לגלות את המשימה הוסרה כדי להחליט אם הם רוצים את זה אומר שהם צריכים להפסיק.זה כל כך להסרת לומר את המשימה האחרונה של יישום דואר אלקטרוני לא יגרום לו להפסיק לבדוק דואר אלקטרוני.

אם אתה באמת רוצה לעצור לחלוטין את היישום, אתה יכול ללחוץ לחיצה ארוכה על המשימות האחרונות ללכת מידע על אפליקציה, ופגע כוח לעצור שם.כוח עצור הוא להרוג מלא של היישום - כל התהליכים נהרגים, כל השירותים נעצרו, כל ההודעות הוסרו, כל אזעקות הוסרו, וכו 'האפליקציה אינה מורשית להשיק שוב עד המבוקש במפורש.

לכן, נראה שהסיכום הוא שהחלקה של אפליקציה מתוך הרשימה תביא תחילה להורדת כל תהליכי הרקע עבור האפליקציה, ולאחר מכן להשתמש ב- TTaskRemoved כדי להודיע ​​לאפליקציה שמשימת הרקע הוסרה.בשלב זה זה נראה כאילו זה תלוי App כדי להחליט מה קורה, אז אני מניח שם מבחינה טכנית הוא לא כלל קשה ומהר על מה שקורה App מעבר לנקודה זו.

יש משהו להוסיף להסבר?נשמע את ההערות.רוצה לקרוא תשובות נוספות ממשתמשים אחרים בעלי ידע טכנולוגי?בדוק את נושא הדיון המלא כאן.