שְׁאֵלָה:
מה הדרך הנכונה לסגור אפליקציות באנדרואיד?
Daniel Magliola
2010-08-28 20:56:57 UTC
view on stackexchange narkive permalink

אני חדש בפלטפורמת Android, וזו כנראה שאלה מטומטמת, אבל ...

איך סוגרים אפליקציה?

כשאני נמצא אפליקציה, ואני רוצה לצאת, אני פשוט לוחץ על "בית" ועובר, אבל פשוט התקנתי אפליקציית מנהל המשימות, ושמתי לב ש הכל נשאר פועל.

p> האם יש דרך לצאת מאפליקציות? או שעלי להשתמש במנהל המשימות בכל פעם שאני יוצא ממשהו?
ראה גם: [כיצד אוכל לעצור הפעלת יישומים ושירותים?] (Http://android.stackexchange.com/q/30332/1465)
שֵׁשׁ תשובות:
#1
+47
schwiz
2010-08-30 01:38:18 UTC
view on stackexchange narkive permalink

אם תצא מהאפליקציה באמצעות כפתור BACK אז היא תקרא ל- onDestroy () בפעילות הנוכחית, אם תלחץ על HOME קורא רק ל onPause ()
אל תדאג יותר מדי מכך, פעילויות לא ירוקנו הסוללה, הן פשוט נותרו בזיכרון, כך שניתן יהיה לפתוח אותן מהר יותר בעתיד.

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

שמתי לב לכמה אפליקציות ש- אוכלות דרך סוללה רבה במצב מושהה זה. כלומר, הגרסה האחרונה של מפות גוגל ומשחק שיש לי נקרא GalaxIR. אז שימו לב לעבריינים גרועים והקפידו לסגור אותם כראוי.
אתה טועה אם אכילת הבלילה שלך היא שירות רקע.
אכן ניתן לקבל אפליקציה שאינה מפותחת ואינה עוקבת אחר מחזור החיים של אפליקציית Android. לדוגמא, ניתן להשאיר שרשור פעיל בפעילות גם לאחר שהושהה על ידי מערכת ההפעלה (על ידי לחיצה על דף הבית), במקרה זה האפליקציה תמשיך להשתמש בסוללה.
לא אשמור דבר כזה מותקן בטלפון שלי :-)
@schwiz האם אתה בטוח שכפתור 'הקודם' יקרא ל- Destroy ()? לא שמתי לב לכך שהוזכר ב [מחזור חיי הפעילות] (http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle). AFAIK כפתור Back פשוט מקפיץ את תצוגת הפעילות מהערימה. האם תוכל להראות לנו אסמכתה היכן זה נאמר?
@Flow פשוט בצע פעילות פשוטה שמודפסת לקונסולה כש- OnDestroy נקרא ותראה שהלחצן 'חזרה' הורס את הפעילות.
@schwiz אתה צודק, זה מתועד [כאן] (http://developer.android.com/guide/topics/fundamentals/tasks-and-back-stack.html). אולי אתה רוצה להכניס את זה כקישור לתשובתך.
גיליתי שאפליקציות רבות אינן יוצאות כאשר אני לוחץ על כפתור הקודם. לדוגמא: פנדורה, ג'י
(זמן העריכה שלי פג) .... אפליקציות אחרות שלא נסגרות על כפתור Back: פנדורה (שאף ממשיכה לשחק לאחר לחיצה על Back), חנות Google Play, FaceBook, Podkicker. הדרך בה אני בודק היא ללחוץ על כפתור הקודם עד שהאפליקציה תיעלם (בדרך כלל זה מחזיר אותי לבית) ואז מריצה את Easy Task Killer.
#2
+25
GAThrawn
2010-08-29 20:31:03 UTC
view on stackexchange narkive permalink

אני די בטוח שכל מה שקראתי אי פעם אומר כי כפתור חזרה kbd> הוא הדרך הנכונה לצאת מאפליקציות.

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

החזקת כפתור 'הבית' פשוט מפרטת את 6 היישומים האחרונים שנפתחו, ולא את האפליקציה הפועלת.
@Loïc: זה מראה 8 בשבילי.
@LoicWolff, AlEverett זה תלוי במפעיל המדובר בו משתמשים וב- ROM עצמו.
זה לא ממש נכון. פעילויות אינן פועלות ברקע ב- Android.
#3
+11
ale
2010-08-28 22:55:16 UTC
view on stackexchange narkive permalink

בחלק מהאפליקציות יש אפשרות "יציאה" בתפריטים שלהם. לרוב לא.

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

עדכון : AndroidSpin עשה תחקיר בעולם האמיתי.

קישור נחמד לך :)
#4
+7
Dan Hulme
2013-11-29 16:54:11 UTC
view on stackexchange narkive permalink

פעילויות אינן פועלות ברקע

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

דף הבית

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

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

חזרה

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

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

תהליכי רקע במטמון

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

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

מה לגבי אפליקציות רקע?

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

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

סיכום

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

אני כל כך שמח שמישהו כיסה את זה! אני מפתח, אבל עבדתי בעבר ב- Verizon Wireless ואני לא יכול להגיד לך כמה אנשים היו מודאגים מכך כשלא היה צורך בכך.
#5
+3
jmbouffard
2011-02-04 19:08:43 UTC
view on stackexchange narkive permalink

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

מחזור החיים של יישומי Android פועל באופן ש- יישומים שאינם בראשם מועברים במצב מושהה שאינו משתמש במעבד כלשהו יותר; רק תוכן הזיכרון נשמר במקרה שהיישום נפתח שוב; והזיכרון ישוחרר במידת הצורך.

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

אבל הייתי רוצה ממש לא ממליץ להשתמש ברוצח משימות שרץ כל הזמן במכשיר.

#6
+1
noob
2013-01-20 20:57:29 UTC
view on stackexchange narkive permalink

רק רוצה להוסיף בתשובת schwiz שמדובר רק בשורות קוד בודדות כדי לעקוף את הפונקציונליות של כפתור ה- Back. כך שלא תמיד אמין לסגור את האפליקציה. אז אם מפתח האפליקציות לא רוצה לסגור את האפליקציה בלחיצה על כפתור הקודם, היא לא תיסגר.

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

התשובה הנכונה יכולה להיות זו, סגירת האפליקציה היא לגמרי על מפתח האפליקציה, אם הם רוצים שהאפליקציה תיסגר בלחיצה על כפתור הבית, הם יכניסו את קוד היציאה ל- onPause () . אם הם רוצים את זה על כפתור Back, הם יכניסו אותו ל onBackKeyPressed . אז זה לא ממש ביד המשתמש.

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

מערכת ההפעלה אכן סוגרת את האפליקציה במידת הצורך, כך שלא תדאג יותר מדי מכך.

ערוך:
יש אפשרות להשמיד את היישומים, ברגע שאתה עוזב את האפליקציה כלומר כאשר אתה לוחץ על מקש הבית. אתה יכול לעבור אל הגדרות-> אפשרויות מפתח -> אל תשמור פעילויות . אמנם זו אפשרות למפתח, אך אם אתה מודאג מדי מהאפליקציות הפועלות ברקע, תוכל להשתמש באפשרות זו. אך זכור כי לא מומלץ להשתמש בהם על ידי אנשים שאינם מפתחים.



שאלה ותשובה זו תורגמה אוטומטית מהשפה האנגלית.התוכן המקורי זמין ב- stackexchange, ואנו מודים לו על רישיון cc by-sa 2.0 עליו הוא מופץ.
Loading...