لا يزال هناك الكثير من الأشخاص الذين لا يعرفون كيفية عمل المهام المتعددة في نظام التشغيل iOS. ومع ذلك، في البداية، من الضروري الإشارة إلى أن هذا ليس تعدد المهام الحقيقي، ولكنه حل ذكي للغاية لا يثقل كاهل النظام أو المستخدم.
يمكن للمرء في كثير من الأحيان سماع خرافات مفادها أن التطبيقات التي تعمل في الخلفية في نظام iOS تملأ ذاكرة التشغيل، مما يؤدي إلى تباطؤ النظام وعمر البطارية، لذلك يجب على المستخدم إيقاف تشغيلها يدويًا. لا يحتوي شريط المهام المتعددة فعليًا على قائمة بجميع العمليات قيد التشغيل في الخلفية، ولكنه يحتوي فقط على أحدث التطبيقات التي تم تشغيلها. لذلك لا داعي للقلق بشأن العمليات التي تجري في الخلفية إلا في حالات قليلة. عندما تضغط على زر الصفحة الرئيسية، ينتقل التطبيق عادة إلى وضع السكون أو يغلق، بحيث لا يقوم بتحميل المعالج أو البطارية، وإذا لزم الأمر، يحرر الذاكرة اللازمة.
لا يعد هذا تعدد مهام كاملًا عندما يكون لديك العشرات من العمليات قيد التشغيل، حيث يعمل دائمًا تطبيق واحد فقط في المقدمة، والذي يتم إيقافه مؤقتًا أو إيقاف تشغيله تمامًا إذا لزم الأمر. يتم تشغيل عدد قليل فقط من العمليات الثانوية في الخلفية. ولهذا السبب نادرًا ما تواجه تعطلًا في أحد التطبيقات على نظام التشغيل iOS، على سبيل المثال، يعمل نظام Android على تشغيل التطبيقات التي يتعين على المستخدم الاهتمام بها. من ناحية، فإنه يجعل العمل مع الجهاز غير سارة، ومن ناحية أخرى، فإنه يسبب، على سبيل المثال، بدء التشغيل البطيء والانتقالات بين التطبيقات.
نوع وقت تشغيل التطبيق
التطبيق الموجود على جهاز iOS الخاص بك موجود في إحدى الحالات الخمس التالية:
- جري: يتم بدء تشغيل التطبيق وتشغيله في المقدمة
- خلفية: لا يزال قيد التشغيل ولكنه يعمل في الخلفية (يمكننا استخدام تطبيقات أخرى)
- معلق: لا تزال تستخدم ذاكرة الوصول العشوائي ولكن لا تعمل
- غير نشط: التطبيق قيد التشغيل ولكن بأوامر غير مباشرة (على سبيل المثال، عند قفل الجهاز أثناء تشغيل التطبيق)
- لا يعمل: تم إنهاء التطبيق أو لم يبدأ
يأتي الارتباك عندما ينتقل التطبيق إلى الخلفية حتى لا يتم الإزعاج. عند الضغط على زر الصفحة الرئيسية أو استخدام الإيماءة لإغلاق التطبيق (iPad)، ينتقل التطبيق إلى الخلفية. يتم تعليق معظم التطبيقات في غضون ثوانٍ (يتم تخزينها في ذاكرة الوصول العشوائي الخاصة بجهاز iDevice بحيث يمكن تشغيلها بسرعة، ولا تقوم بتحميل المعالج كثيرًا وبالتالي توفير عمر البطارية). قد تعتقد أنه إذا استمر أحد التطبيقات في استخدام الذاكرة، فقد يكون لديك لحذفه يدويًا لتحريره. ولكن ليس عليك القيام بذلك، لأن نظام iOS سيقوم بذلك نيابةً عنك. إذا كان لديك تطبيق متطلب معلق في الخلفية، مثل لعبة تستخدم كمية كبيرة من ذاكرة الوصول العشوائي (RAM)، فسيقوم نظام iOS بإزالته تلقائيًا من الذاكرة عند الضرورة، ويمكنك إعادة تشغيله من خلال النقر على أيقونة التطبيق.
لا تنعكس أي من هذه الحالات في شريط المهام المتعددة، وتعرض اللوحة فقط قائمة بالتطبيقات التي تم تشغيلها مؤخرًا بغض النظر عما إذا كان التطبيق متوقفًا أو متوقفًا مؤقتًا أو قيد التشغيل في الخلفية. قد تلاحظ أيضًا أن التطبيق قيد التشغيل حاليًا لا يظهر في لوحة المهام المتعددة
مهام فى الخلفيه
عادة، عندما تضغط على زر الصفحة الرئيسية، سيتم تشغيل التطبيق في الخلفية، وإذا كنت لا تستخدمه، فسوف يتوقف تلقائيًا خلال خمس ثوانٍ. لذلك، إذا كنت تقوم بتنزيل بودكاست، على سبيل المثال، يقوم النظام بتقييمه كتطبيق قيد التشغيل وتأخير الإنهاء لمدة عشر دقائق. وبعد عشر دقائق على أبعد تقدير، يتم تحرير العملية من الذاكرة. باختصار، لا داعي للقلق بشأن مقاطعة التنزيل الخاص بك عن طريق الضغط على زر الصفحة الرئيسية، إذا لم يستغرق إكماله أكثر من 10 دقائق.
تشغيل لأجل غير مسمى في الخلفية
في حالة عدم النشاط، يقوم النظام بإنهاء التطبيق خلال خمس ثوان، وفي حالة التنزيلات يتم تأخير الإنهاء لمدة عشر دقائق. ومع ذلك، هناك عدد قليل من التطبيقات التي تتطلب التشغيل في الخلفية. فيما يلي بعض الأمثلة للتطبيقات التي يمكن تشغيلها في الخلفية لأجل غير مسمى في نظام التشغيل iOS 5:
- التطبيقات التي تقوم بتشغيل الصوت ويجب مقاطعتها لفترة من الوقت (إيقاف الموسيقى مؤقتًا أثناء مكالمة هاتفية، وما إلى ذلك)،
- التطبيقات التي تتبع موقعك (برامج الملاحة)،
- التطبيقات التي تستقبل مكالمات VoIP، على سبيل المثال إذا كنت تستخدم Skype، فيمكنك استقبال مكالمة حتى عندما يكون التطبيق في الخلفية،
- التنزيلات التلقائية (مثل الصحف والمجلات).
يجب إغلاق جميع التطبيقات إذا لم تعد تؤدي مهمة (مثل التنزيلات في الخلفية). ومع ذلك، هناك استثناءات تعمل في الخلفية بشكل مستمر، مثل تطبيق البريد الأصلي. إذا كانت تعمل في الخلفية، فإنها تستهلك الذاكرة أو استخدام وحدة المعالجة المركزية أو تقلل من عمر البطارية
يمكن للتطبيقات المسموح لها بالعمل في الخلفية إلى أجل غير مسمى أن تفعل أي شيء تفعله أثناء تشغيلها، بدءًا من تشغيل الموسيقى وحتى تنزيل حلقات Podcast جديدة.
كما ذكرت من قبل، لا يحتاج المستخدم أبدًا إلى إغلاق التطبيقات التي تعمل في الخلفية. الاستثناء الوحيد لذلك هو عندما يتعطل أحد التطبيقات التي تعمل في الخلفية أو لا يتم تنشيطه من وضع السكون بشكل صحيح. يمكن للمستخدم بعد ذلك إغلاق التطبيقات يدويًا في شريط المهام المتعددة، لكن هذا نادرًا ما يحدث.
لذلك، بشكل عام، لا تحتاج إلى إدارة العمليات الخلفية لأن النظام سوف يعتني بها بنفسه. لهذا السبب يعتبر نظام iOS نظامًا جديدًا وسريعًا.
من وجهة نظر المطور
يمكن أن يتفاعل التطبيق مع إجمالي ست حالات مختلفة كجزء من تعدد المهام:
1.applicationWillResignActive
في الترجمة، تعني هذه الحالة أن التطبيق سوف يستقيل من كونه التطبيق النشط (أي التطبيق في المقدمة) في المستقبل (مسألة بضعة ميلي ثانية). يحدث هذا، على سبيل المثال، عند تلقي مكالمة أثناء استخدام التطبيق، ولكن في نفس الوقت، تتسبب هذه الطريقة أيضًا في حدوث هذه الحالة قبل أن ينتقل التطبيق إلى الخلفية، لذلك عليك أن تأخذ هذه التغييرات في الاعتبار. هذه الطريقة مناسبة أيضًا بحيث تقوم، على سبيل المثال، بإيقاف كافة الأنشطة التي تقوم بها عند وجود مكالمة واردة والانتظار حتى نهاية المكالمة.
2.applicationDidEnterBackground
تشير الحالة إلى أن التطبيق قد انتقل إلى الخلفية. يجب على المطورين استخدام هذه الطريقة لتعليق كافة العمليات التي لا تحتاج بالضرورة إلى التشغيل في الخلفية ومسح الذاكرة من البيانات غير المستخدمة والعمليات الأخرى، مثل انتهاء صلاحية الموقتات، أو مسح الصور المحملة من الذاكرة التي لن تكون هناك حاجة إليها بالضرورة، أو الإغلاق الاتصالات مع الخوادم، ما لم يكن من الضروري أن يكمل التطبيق الاتصالات في الخلفية. عندما يتم استدعاء الطريقة في أحد التطبيقات، يجب استخدامها بشكل أساسي لتعليق التطبيق بشكل كامل إذا لم يكن هناك حاجة إلى تشغيل جزء منه في الخلفية.
3.applicationWillEnterForeground
هذه الحالة هي عكس الحالة الأولى، حيث سينتقل التطبيق إلى الحالة النشطة. تعني الحالة ببساطة أن التطبيق النائم سيستأنف العمل من الخلفية وسيظهر في المقدمة خلال المللي ثانية القليلة القادمة. يجب على المطورين استخدام هذه الطريقة لاستئناف أي عمليات كانت غير نشطة أثناء وجود التطبيق في الخلفية. يجب إعادة تأسيس الاتصالات بالخوادم، وإعادة ضبط المؤقتات، وتحميل الصور والبيانات في الذاكرة، ويمكن استئناف العمليات الضرورية الأخرى قبل أن يرى المستخدم التطبيق الذي تم تحميله مرة أخرى.
4. applicationDidBecomeActive
تشير الحالة إلى أن التطبيق أصبح نشطًا للتو بعد استعادته إلى المقدمة. هذه طريقة يمكن استخدامها لإجراء تعديلات إضافية على واجهة المستخدم أو لاستعادة واجهة المستخدم إلى حالتها الأصلية، وما إلى ذلك. ويحدث هذا بالفعل في اللحظة التي يرى فيها المستخدم بالفعل التطبيق على الشاشة، لذلك من الضروري حدد بحذر ما يحدث في هذه الطريقة وفي الطريقة السابقة. يتم استدعاؤها واحدة تلو الأخرى بفارق بضعة أجزاء من الثانية.
5. applicationWillTerminate
تحدث هذه الحالة قبل بضعة مللي ثانية من إنهاء التطبيق، أي قبل إنهاء التطبيق فعليًا. إما يدويًا من تعدد المهام أو عند إيقاف تشغيل الجهاز. يجب استخدام الطريقة لحفظ البيانات التي تمت معالجتها وإنهاء جميع الأنشطة وحذف البيانات التي لم تعد هناك حاجة إليها.
6. applicationDidReceiveMemoryWarning
إنها الحالة الأخيرة الأكثر مناقشة. وهو مسؤول، إذا لزم الأمر، عن إزالة التطبيق من ذاكرة iOS إذا كان يستخدم موارد النظام دون داع. لا أعرف على وجه التحديد ما يفعله نظام التشغيل iOS مع تطبيقات الخلفية، ولكن إذا كان يحتاج إلى تطبيق لتحرير الموارد إلى عمليات أخرى، فإنه يطالبه بتحذير للذاكرة لتحرير أي موارد لديه. لذلك يتم استدعاء هذه الطريقة في التطبيق. يجب على المطورين تنفيذه بحيث يتخلى التطبيق عن الذاكرة التي خصصها، ويحفظ كل شيء قيد التقدم، ويمسح البيانات غير الضرورية من الذاكرة، ويحرر الذاكرة بشكل مناسب. صحيح أن العديد من المطورين، حتى المبتدئين، لا يفكرون أو يفهمون مثل هذه الأشياء، ومن ثم قد يحدث أن يهدد تطبيقهم عمر البطارية و/أو يستهلك موارد النظام دون داعٍ، حتى في الخلفية.
حكم
هذه الحالات الست والأساليب المرتبطة بها هي خلفية جميع "المهام المتعددة" في نظام التشغيل iOS. إنه نظام رائع، طالما أن المطورين لا يتجاهلون حقيقة أن هناك حاجة إلى أن يكونوا مسؤولين عما يظهره التطبيق على أجهزة المستخدمين، إذا تم تصغيرها أو تلقي تحذيرات من النظام وما إلى ذلك.
مصدر: Macworld.com
المؤلفون: جاكوب بوزاريك، مارتن دوبيك (ArnieX)
هل لديك أيضا مشكلة لحلها؟ هل تحتاج إلى نصيحة أو ربما تجد التطبيق المناسب؟ لا تتردد في الاتصال بنا عبر النموذج الموجود في القسم تقديم المشورة، في المرة القادمة سنجيب على سؤالك.
مرحبًا، مقالة رائعة حقًا، ولكن أتساءل عما إذا كان لديك أي دعم فني لها. لأنني قمت بحل البطارية عدة مرات في المساء قبل الذهاب إلى السرير وحدث أنه مع إيقاف تشغيل wifi وبيانات الهاتف المحمول، استغرق الأمر أكثر من حالة أخرى مع إيقاف تشغيل wifi و3G فقط.
لسوء الحظ، تشير التجربة إلى أنه في نظام التشغيل iOS، يجب إيقاف تشغيل التطبيقات يدويًا، ولم يعد النظام يعمل كما كان من قبل.
لقد استبدلت جهاز iPhone الخاص بي بجهاز Windows Phone (Samsung Omnia W بسعر 6200،-) وأصبحت سرعة النظام على مستوى مختلف تمامًا.
أخشى أنه عندما يتم إصدار أجهزة Windows 8 Metro اللوحية، سأقوم أيضًا باستبدال جهاز iPad ...
@007 – نعم، إذا كنت تقارن بين أجهزة iPhone3G القديمة وأجهزة WP الجديدة، فنعم (من كان يتوقع ذلك؟) سيكون WP أسرع قليلاً. خلاف ذلك، فإن القيل والقال حول كارلولكا لا يتناسب معك وكان من المناسب مقارنة المخلفات الحالية. لقد اشتريت أيضًا WP7 وانتهى بي الأمر أخيرًا بـ 4s، وهو ما يمثل مستوى مختلف تمامًا من سهولة الاستخدام عن WP7. لذا قم بالتمرير بشكل ممتع وقم بالتمرير إلى ما لا نهاية عبر البلاط.
وأنا أتفق تماما مع باجا
هل سأساهم مرة أخرى في حطام برميل آخر - Samsung Galaxy S و iPhone 4 - هل يمكن مقارنتهما من حيث العمر؟ في وقت iOS 4، ومن حيث سهولة الاستخدام والسرعة في مكان آخر غير Android، قامت Apple بحل مفهوم العمل مع التطبيقات بشكل جيد للغاية، ولكن الأمر نفسه لم يعد صحيحًا مع Android. في النهاية، انتهى بي الأمر مع 4S على أي حال وليس لدي أي شكوى، لأنه "يعمل فقط" .. ويعمل بسرعة كبيرة!
النظرية جميلة... لكن من الناحية العملية مازلت أغلق التطبيق في الشريط ;)
شكرًا، مثير جدًا للاهتمام، وعملي، ومثير للاهتمام، ولا يفتقر إلى التأرجح والعمق. مما يؤكد بشكل كبير هوس شباب اليوم بهذه العلامة التجارية المحرمة! ولكن شكرا لها، وكذلك لهذا المقال.
المقال خاطئ تماما.
لا يتم إنهاء التطبيق عند الضغط على زر الصفحة الرئيسية، كما ذكر خطأً، ولكنه يتوقف مؤقتًا. أي. بالتأكيد لا تحذف من الذاكرة ولا تنسحب. ما عليك سوى إيقاف التشغيل مؤقتًا، وسيمنح iOS هذا التطبيق 0% من وقت وحدة المعالجة المركزية. ومن المؤكد أنه لا "يقوم بالتبديل" في أي مكان في ذاكرة iDevice، كما هو مذكور في المقال. يرجع الفضل في ذلك حقًا إلى إمكانية استخدام تبديل التطبيق.
تتم إزالة التطبيق من الذاكرة عندما تكون ذاكرة الهاتف قليلة لتشغيل التطبيقات الأخرى ذات الأولوية الأعلى (عادةً ما يكون هناك تطبيق آخر قيد التشغيل في المقدمة).
في الحالة الأولى، أنت على حق، كان خطأ في الترجمة. أما بالنسبة للتبديل، فنحن لا نتحدث عن ذلك هنا، فنحن نتحدث عن ذاكرة التشغيل، وليس مساحة التخزين في جهاز iOS.
يتم تخزين صورة التطبيق في الذاكرة لفترة محدودة حتى يتم استدعاؤها مرة أخرى عن طريق أمر (راجع 13,7 جيجا بايت من 16 جيجا بايت: 2,3 جيجا بايت محجوزة للنظام والتطبيقات المعلقة)
وبالتالي، من الضروري التمييز بين تطبيقات مثل الملاحة وSkype وما شابه، فهذه التطبيقات تظل نشطة حتى في الخلفية، أو لا تنتهي وظيفة معينة وتستمر، على سبيل المثال، في إرسال بيانات حول موقعها أو معلومات الموقع. أو مثل Vokul في وضع pord استمع وما زال تعدد المهام يستمع في الخلفية.
تستنزف هذه التطبيقات البطارية ومن الضروري إغلاقها يدويًا وعدم انتظار نظام التشغيل iOS. مع الآخرين ليس من الضروري، هناك فقط في حالة تعطل التطبيق.
لا أستطيع أن أتفق مع المقال. دقيقة. على جهاز iPad من الجيل الأول (iOS 1)، من الواضح معرفة ما إذا كان لدي الكثير من التطبيقات "المفتوحة" في شريط المهام المتعددة أو عدد قليل منها فقط. يحاول نظام iOS تنظيف الذاكرة، لكن من الواضح أن ذلك ليس كافيًا - ربما يكون الحجم الصغير لذاكرة الوصول العشوائي (RAM) هو أكبر نقاط ضعفه.
لذلك يعتمد الكثير على النظام والأجهزة المستخدمة، فمن المنطقي تمامًا أن يكون الأمر أسوأ على جهاز iPad 1 الذي يعمل بنظام التشغيل iOS 5.0.1 مما لو كان على جهاز iPad من الجيل الثاني
آسف يا صديقي، هذا وصف للطريقة المثالية التي ينبغي أن تعمل بها. لسوء الحظ، الواقع مختلف تمامًا وستعرف ذلك إذا كنت تستخدم منتجات Apple، على الأقل بقدر ما أفعل (أي في بعض الأحيان).
"يمكنك في كثير من الأحيان سماع خرافات مفادها أن التطبيقات التي تعمل في الخلفية في نظام التشغيل iOS تملأ ذاكرة التشغيل."
إنها ليست خرافة، إنها مجرد حقيقة. بعد كل شيء، أنت تطالب بذلك بنفسك في المقال.
"كما ذكرت من قبل، لا يحتاج المستخدم أبدًا إلى إغلاق التطبيقات التي تعمل في الخلفية."
كلام فارغ. هذا مجرد هراء، دعاية للتفاح، لا تغضب مني.
"ولكن ليس عليك القيام بذلك، لأن نظام التشغيل iOS سيقوم بذلك نيابةً عنك. إذا كان لديك تطبيق متطلب معلق في الخلفية، مثل لعبة تستخدم كمية كبيرة من ذاكرة الوصول العشوائي (RAM)، فسيقوم نظام iOS بإزالته تلقائيًا من الذاكرة عند الضرورة، ويمكنك إعادة تشغيله من خلال النقر على أيقونة التطبيق.
غير صحيح. الوضع مختلف قليلا. مثال نموذجي – لدي تطبيقات كثيرة المتطلبات تعمل في الخلفية، وأحتاج إلى ألعاب. أقوم بتشغيل المتصفح، وفتح بضع علامات تبويب -> بحاجة إلى المزيد من الذاكرة. ماذا سيحدث؟ أستمر في المطالبة بالتطبيقات في الخلفية، على العكس من ذلك، يتعطل المتصفح نفسه. إذا قمت بإغلاق التطبيقات المطلوبة يدويًا، فسيعمل المتصفح لفترة طويلة دون أي مشاكل.
هذه ممارسة وليست نظرية. وأنا مندهش أنك، كمستخدم لفترة طويلة لأحد منتجات Apple، فإنك لا تزال لا تعرف هذا.
شكرا، تم وصف هذا بشكل جيد للغاية وشرحه بشكل جيد. لقد ساعدتني كثيرًا ;-) ♥
فقط للبدء، أنا لست مع أو ضد iOS، تمامًا كما هو الحال مع Android، ولكن هناك بعض الأشياء الغريبة هنا، كما هو مكتوب هنا: "نادرًا ما تواجه تعطل التطبيق على iOS" ثم تتعطل تطبيقات Android حول مرة واحدة في السنة: -P
http://dotekomanie.blog.mobilmania.cz/2012/02/stabilita-ios-vs-android/
نعم، ولكن الحالات التي تحتاج فيها إلى إغلاق التطبيق يدويًا تكون في حدها الأدنى حقًا، هل استخدمتها مرة واحدة تقريبًا؟ ؛-) وإعطاء رابط للاختبار المقارن من Mobilemania أمر لا معنى له على الإطلاق، عندما أريد أن أقرأ عن الإعلانات التي دفعتها Google، سألقي نظرة هناك؛-) يمكن للجميع الحصول على أي هاتف يعمل بنظام Android في أيديهم وهو كذلك لن يعمل بشكل نظيف، باستثناء Galaxy Nexus، حيث أن النظام مصمم خصيصًا بشكل أو بآخر. بشكل عام، الروبوت كارثة
@Mek - كنت أستخدم منتجات Apple يوميًا لعدة سنوات ولم يحدث لي هذا أبدًا، لذا فإن نظريتك لا تعمل بطريقة ما.
OT:
@redakce – يمكنك أن ترى أن موقع الويب قيد العمل باستمرار أو أن شيئًا ما يحدث به، ولكن لدي شعور بأن الأمر لا يستغرق أسبوعًا حتى يعمل كل شيء كما ينبغي. ولم أعد آتي إلى هنا بعد الآن، لأن المظهر الجديد لا يناسبني. على الأقل استخدمت نسخة الهاتف المحمول على iPhone، لكنها الآن لا تعمل على الإطلاق - كيف ذلك؟ إنهم لا يستجيبون حاليًا للمشاركات الموجودة في التعليقات.
@ SteveJSF لسوء الحظ، لا تسير الأمور دائمًا بالطريقة التي نريدها. أما بالنسبة للإجابات، فقد عطلتها إضافة SEO الجديدة، ويتم حلها حاليًا.
قام WP-Touch أيضًا بإنهاء خدمتنا لسبب ما، لذلك قررنا التوصل إلى حل أفضل من هذا البرنامج الإضافي. لذلك يمكنك أن تتطلع إلى الأخبار القادمة قريبا :-)
مقال جميل. فيما يتعلق بالممارسة، أود أن أقول إنني أتفق مع عدة أشياء وفي أغلب الأحيان يعمل كما هو مذكور، لكن للأسف لا تزال هناك تطبيقات مكتوبة بشكل سيء ولا تعمل بشكل صحيح، ثم هناك حالات مثل تلك لاحظه بعض القراء. أعتقد أن Skype مثال جيد جدًا، وأنا أعلم من الممارسة أنه لا يزال يعمل في الخلفية (وهذا جيد وهذا ما ينبغي أن يكون)، ولكن المشكلة هي أن هذا التطبيق يستنزف بطارية الجهاز كثيرًا و لا أستطيع رؤيته بشكل صحيح بعد الآن. وعلى العكس من ذلك، فإن تطبيقات مثل Facebook و Badoo وما إلى ذلك. كما أنها لا تزال تعمل في الخلفية، لكن استهلاكها يكاد يكون غير محسوس (على الأقل لا ألاحظ أيًا منها). لذلك أعتقد أن الخطأ يكمن في التطبيقات الفردية. إذا كنت تعرف أي منها، فسيكون ذلك كافيًا لإيقاف تشغيلها يدويًا فقط!
لذا فإن الممارسة المتبعة هي أن فيسبوك يعمل حسب الحاجة، ويعمل سكايب فقط عند الحاجة.
حسنًا، من ناحية أخرى، إذا كنت بحاجة إلى توفير البطارية وأعلم أنه يتعين علي إبقاء iPhone "حيًا" لأطول فترة ممكنة، فأنا أقوم أيضًا بإيقاف تشغيل كل شيء غير ضروري في المهام المتعددة، ولكن في الغالب ليس له تأثير كبير، ولكن إذا لزم الأمر، أقوم بتقييد شبكة الجيل الثالث، وجميع خدمات الإنترنت عبر الهاتف المحمول، وشبكة WiFi، وخدمات الموقع، ووضع الطائرة، وقوة الإضاءة، وما إلى ذلك. وكجزء من الروتين، أقوم أيضًا بإيقاف تشغيل التطبيقات المذكورة أعلاه في المهام المتعددة.
لذلك شخصيا أعتقد أن المقال صحيح، وللأسف بعض المبرمجين يدحضون هذه الأمور بتطبيقاتهم، لأن تطبيقاتهم غير صحيحة وفي رأيي لا يوجد سوى حلين لهذا 1. إذا كان من الممكن عدم استخدام التطبيق والعثور على حل بديل إن أمكن، أو 2. إذا لم يكن ذلك ممكنًا، راجع على سبيل المثال Skype، واكتبه إلى المبرمج المحدد في التقرير وآمل أن يفعلوا شيئًا حيال ذلك.
قد يكون من غير المجدي تعطيل التطبيقات يدويًا، لكنني أفعل ذلك على أي حال. حاولت أيضًا عدم إيقاف تشغيل نظام التطبيقات، أو السماح لهم بالعمل (أو تركهم نائمين في الخلفية) وكان عمر البطارية أقل بكثير، وكان من الضروري أيضًا إعادة تشغيل جهاز iPad 2 بعد حوالي ثلاثة أسابيع، وكان يستجيب ببطء. لذلك أقوم بإيقاف تشغيل التطبيقات يدويًا، وتدوم البطارية لفترة أطول، وقد قمت مؤخرًا بإعادة التشغيل في يوم عيد الميلاد وهو يعمل بشكل جيد.
بالمناسبة، أفعل نفس الشيء في نظام التشغيل Mac OS X، حيث أقوم فقط بإغلاق التطبيق الذي لا أحتاج إليه (CMD+Q)، وهذا أفضل من تركه في وضع السكون في الخلفية واستهلاك ذاكرة الوصول العشوائي (RAM) دون داعٍ (وهو ما يستطيعه نظام التشغيل OS X). لا تعمل بشكل جيد للغاية). لدي ذاكرة وصول عشوائي صغيرة، 8 جيجابايت فقط، ولكن في نظام التشغيل Windows 7 بسعة 8 جيجابايت، لم يستجيب النظام ببطء أو يتبدل، وهذه ظاهرة شائعة إلى حد ما في نظام التشغيل OS X (لم أقم بإيقاف تشغيل الكمبيوتر مطلقًا، وأنا أفعل ذلك مع نظام التشغيل Mac أيضًا، لذا فإن مدة التشغيل لمدة شهر أو أكثر ليست استثناءً، والمشكلة هي أنني أضطر أحيانًا إلى إعادة تشغيل جهاز Mac كإجراء وقائي لتحرير ذاكرة الوصول العشوائي و"التسريع"، ولا يحتاج Windows 7 إلى هذا).
أنا مهتم أكثر بكيفية تشغيل التطبيق فعليًا. ما حدث لي هو أن التطبيق (تحديدًا على Geocaching) وصل إلى حالة حيث كان يقوم بتحميل شيء ما من الخادم الأصلي وتوقف في تلك الحالة. عمل زر الصفحة الرئيسية، وبعد إعادة التشغيل عاد إلى حالة التجميد (حيث توقفت). الخروج اليدوي (إلى قائمة التذوق المتعددة، اضغط باستمرار على الأيقونة وعلامة الطرح للإغلاق) = اختفى التطبيق، بعد إعادة تشغيله تم فتحه في حالته الأصلية حيث تم تجميده. لذلك أغلقت كل شيء، وأوقفت تشغيل الهاتف، ثم قمت بتشغيله، ثم قمت بالنقر المزدوج على الصفحة الرئيسية، ثم ها هي التطبيقات كلها موجودة كما كانت قبل إغلاقها قبل إيقاف تشغيلها مباشرة. لم تساعد إعادة التشغيل أيضًا - احتفظ بالمنزل والأعلى حتى يصبح الجو ساخنًا. الشيء الوحيد الذي ساعد هو إزالة التطبيق من الهاتف وإعادة تشغيله وإعادة تثبيته على الهاتف. بطريقة ما لم أعتبر.
تعمل إدارة المهام المتعددة هذه والأمر متروك للمطورين للتعامل مع هذه المواقف. بالنسبة للمهتمين بوصف أكثر تفصيلاً واحترافية للوضع برمته، سأكتب هنا كيف هو.
يمكن للتطبيق الرد على إجمالي 6 حالات وهذه الحالات هي:
applicationWillResignActive
applicationDidEnterBackground
applicationWillEnterForeground
applicationDidBecomeActive
applicationWillTerminate
applicationDidReceiveMemoryWarning
الآن سأحاول وصف هذه الحالات بمزيد من التفصيل.
applicationWillResignActive - تعني هذه الحالة أنه في المستقبل (في غضون بضعة أجزاء من الثانية) سيستقيل التطبيق من التطبيق النشط (أي التطبيق الأمامي) ويحدث هذا على سبيل المثال عند تلقي مكالمة أثناء استخدام التطبيق، ولكن في نفس الوقت هذا لذلك سيتم تشغيل هذه الحالة حتى قبل أن ينتقل التطبيق إلى الخلفية، لذلك عليك أن تأخذ هذه التغييرات في الاعتبار. هذه الطريقة مناسبة أيضًا بحيث تقوم، على سبيل المثال، بإيقاف جميع الأنشطة التي تقوم بها عند وجود مكالمة واردة والانتظار حتى نهاية المكالمة.
applicationDidEnterBackground - تشير هذه الحالة إلى أن التطبيق قد دخل في الخلفية، ويجب على المطورين استخدام هذه الطريقة لتعليق جميع العمليات التي لا تحتاج بالضرورة إلى التشغيل في الخلفية وتنظيف الذاكرة من البيانات غير المستخدمة والعمليات الأخرى، على سبيل المثال، مؤقتات انتهاء الصلاحية، ومسحها من الصور المحملة بالذاكرة والتي لن تكون هناك حاجة إليها بالضرورة أو إنهاء الاتصال بالخوادم إذا لم يكن من الضروري أن يكمل التطبيق الاتصال في الخلفية. بشكل أساسي، يجب استخدام هذه الطريقة عند استدعائها في التطبيق لتعليق التطبيق تمامًا إذا لم يكن هناك حاجة إلى تشغيل جزء منه في الخلفية.
applicationWillEnterForeground - هذه الحالة هي عكس الحالة الأولى عندما يستقيل التطبيق إلى الحالة النشطة. تعني حالة التطبيق هذه ببساطة أنه خلال المللي ثانية القليلة القادمة سيستأنف التطبيق النائم من الخلفية وسيظهر في المقدمة (يدخل التطبيق في المقدمة)، ويجب أن يستخدم المطورون هذه الطريقة لاستئناف أي عمليات كانت غير نشطة أثناء تشغيل التطبيق في الخلفية، يجب إعادة إنشاء الاتصالات بالخوادم، وإعادة ضبط المؤقتات، وتحميل الصور والبيانات في الذاكرة، ويمكن استئناف العمليات الضرورية الأخرى قبل أن يرى المستخدم التطبيق المحمل مرة أخرى.
applicationDidBecomeActive – تشير هذه الحالة إلى أن التطبيق أصبح نشطًا للتو بعد استعادته إلى المقدمة، وهذه طريقة يمكن استخدامها لإجراء تعديلات إضافية على واجهة المستخدم أو استعادة واجهة المستخدم إلى حالتها الأصلية، وما إلى ذلك. تحدث هذه الطريقة بالفعل عندما يتمكن المستخدم بالفعل من الرؤية على الشاشة، لذلك من الضروري أن تحدد من الميزانية العمومية ما يحدث في هذه الطريقة وفي الطريقة السابقة. يتم استدعاؤها واحدة تلو الأخرى بفارق بضعة أجزاء من الثانية.
applicationWillTerminate - تحدث هذه الحالة قبل انتهاء التطبيق ببضعة مللي ثانية، أي قبل أن ينتهي التطبيق فعليًا. إما يدويًا من تعدد المهام أو عند إيقاف تشغيل الجهاز. يجب استخدام هذه الطريقة لحفظ البيانات التي تمت معالجتها وإنهاء جميع الأنشطة وحذف البيانات التي لن تكون هناك حاجة إليها.
applicationDidReceiveMemoryWarning - وهذا شرط تمت مناقشته كثيرًا هنا، إذا لزم الأمر، سيقوم iOS بإزالة التطبيق من الذاكرة إذا كان يستخدم موارد النظام دون داع. لا أعرف بالضبط ما يفعله نظام التشغيل iOS مع تطبيقات الخلفية، ولكن إذا كان يحتاج إلى تطبيق لتحرير الموارد إلى عمليات أخرى، فإنه يطالبه بتحذير من الذاكرة لتحرير الموارد التي يحتفظ بها. لذلك يتم استدعاء هذه الطريقة في التطبيق، ويجب على المطورين تنفيذها بحيث يتخلى التطبيق عن الذاكرة الموجودة به، ويحفظ البيانات المعالجة ويحذف البيانات غير الضرورية من الذاكرة، وبخلاف ذلك يحرر الذاكرة بشكل مناسب. صحيح أن العديد من المطورين، على سبيل المثال المبتدئين، لا يفكرون في مثل هذه الأشياء أو لا يفهمونها، ومن ثم يمكن أن يحدث أن يعرض تطبيقهم عمر البطارية للخطر و/أو يستهلك موارد النظام دون داعٍ حتى في الخلفية. لا أعرف كيف سيتصرف نظام iOS إذا لم يفعل التطبيق شيئًا بعد تلقي تحذير الذاكرة واستمر في استهلاك موارد النظام كما كان من قبل.
هذه الحالات القليلة والأساليب المرتبطة بها هي السبب وراء "تعدد المهام" بالكامل في نظام التشغيل iOS... إنه نظام رائع إذا لم يتجاهل المطورون الحاجة إلى تحمل المسؤولية عما ستطرحه التطبيقات على أجهزة مستخدميها إذا تم تصغيرها أو الحصول على تحذيرات من النظام والمزيد …
آمل أن يساعدك هذا الوصف الموجز على فهم كيفية مشاركة التطبيق في جعل كل شيء يعمل بسلاسة. لذلك يكاد يكون من الممكن القول أنه خطأ في الاستخدام غير الصحيح من قبل المستخدم، وهو ما يمكن فهمه على أنه - إذا كنت تستخدم في الغالب تطبيقات مجانية من مطورين هواة بأعداد كبيرة، فإن جهاز iOS الخاص بك سيعمل بشكل أسوأ مما لو كنت تستخدم عددًا كبيرًا من التطبيقات. عدد من التطبيقات المجانية والمدفوعة من المطورين ذوي الخبرة أو المحترفين. هذا لا يعني أنه لا توجد استثناءات في كلا الدائرتين. على سبيل المثال، يتصرف شخصيات قصص الابطال الخارقين بشكل غريب ومتطلب للغاية، وفي الوقت نفسه، قد يتوقع المرء أنهم مطورين ماهرين للغاية ويخصصون الكثير من الوقت لإدارة الذاكرة والبطارية، ولكن العكس هو الصحيح. أكبر مشكلة في 4SQ هي التواصل مع الخوادم، والذي غالبًا ما يتوقف ويتعطل. هذا مجرد مثال على حقيقة أنه حتى التطبيقات المعروفة تواجه مشكلات، وهو ما لا يغير حقيقة أن 4SQ هي خدمة رائعة.
استمتع بالتفاح!! :)
أضفنا المعلومات إلى المقال بإذن المؤلف ;-)
أنا آسف، كان ENTER موجودًا في كل مكان بين الفقرات، ويمكنهم فعل شيء حيال ذلك هنا حتى تحتوي التعليقات على الأقل على القليل من تنسيق النص الغني.
أرنيكس: شكرًا على التعليق!!
ذلك فارمير: لقد تحدثت فقط عن مشكلتك، ولا أعلم إذا كان ذلك سيساعد في حالتك، ولكني أعلم من تجربتي الخاصة أنه إذا قمت بإغلاق التطبيق (في تعدد المهام) فإنه يستغرق بضع ثوانٍ حتى يتم إغلاقه، لذلك إذا قمت بإيقاف تشغيله، أوصي بالانتظار بضع ثوانٍ (أنتظر حوالي 10 ثوانٍ للتأكد) حتى تنتهي بالتأكيد وعندها فقط أبدأ تشغيله مرة أخرى.
مرحبًا بك؛) سأكون سعيدًا بالمساعدة إذا أتيحت لي الفرصة للمساهمة.
كيف من المفترض أن يكون الأمر مع Meeb، عندما أقوم بتسجيل الدخول إلى دردشة ICQ أو FB من خلاله، فإنه يقوم بتسجيل الخروج تلقائيًا بعد 10 دقائق وأصبح غير متصل بالإنترنت أم أنه يستمر في العمل؟ شكرا على التوضيح :P
وبعد عشر دقائق، ينقطع اتصال التطبيق بالإنترنت بكل بساطة. ومع ذلك، ستظل متصلاً بالإنترنت على خادم Meeba وستتلقى إشعارًا فوريًا إذا كتب إليك شخص ما. بعد إعادة فتح التطبيق، سيتم إنشاء الاتصال في لحظة ويمكنك مواصلة الدردشة بسعادة.
لذا، إذا فهمت المقالة التي قمت بربطها بشكل صحيح، فإن الإحصائيات تشير فقط إلى أعطال التطبيق عند بدء تشغيلها، وهي نسبة صغيرة إلى حد ما من الحالات التي يمكن أن تحدث فيها الأعطال. لذلك، من المستحيل أن نستنتج من هذا "البحث" أن نظام iOS أقل استقرارًا في رأيي. علاوة على ذلك، نسي مترجم المقال المأخوذ من مجلة Forbes أن يذكر أن الشركة التي توفر البيانات حول أعطال التطبيقات مدعومة من قبل Google، من بين شركات أخرى ("Crittercism، المدعومة من Google Ventures،...").