سؤال

جميع شاشاتي المتأصلة من الشاشة مع طريقة OnClose () التالية:

    public boolean onClose()
    {
        Dialog.alert("Closing");
        done = true;
        System.exit(0);

        return true;
    }

لقد افترضت هذا النظام. exit (0) ؛ سوف تقتل في الواقع طلبي.

إذا قمت بالضغط على الزر الأحمر للخروج تمامًا ، أحصل على رسالة مربع حوار "إغلاق" بشكل ناجح. نفس الشيء إذا ضغطت على زر العودة عدة مرات. ولكن حتى لو حصلت على مربع الحوار "الإغلاق" ، سأظل أرى طلبي يعمل في الخلفية عندما أقوم بتحديد "تطبيق التبديل".

ليس ذلك فحسب ، إذا كان لديّ موضوع يعمل ، فأحيانًا ما زلت أراه بعد أن تركت التطبيق (ولهذا السبب قمت بإجراء مجموعة متغيرة ، بحيث يتم إحباط مؤشرات الترابط الخاصة بي إذا كان ذلك صحيحًا).

علاوة على ذلك ، إذا تعطل التطبيق ، فأنا بالتأكيد لا أرى رسالة الحوار الخاصة بي ، حتى لو تمكنت من ترك التطبيق بالكامل. إذا حاولت إعادة التقديم بعد تعطله ، فهو لا يتم إعادة تحميله أيضًا. أبدًا. هل هناك على أي حال للتعامل مع هذا الموقف بأمان؟ (من الواضح أنني قمت بتوفير معالجة الأخطاء لكل مشكلة وجدتها ، ولكن إذا حدث شيء ما في البرية ، فأنا أريد على الأقل عدم الاستمرار في تناول الذاكرة)

هل تطبيقات BlackBerry لا تغلق أبدًا؟ أفعل شيئا خاطئا؟ الآن إذا أردت أن يتوقف طلبي ، يجب أن أحذفه تمامًا وإعادة تثبيته!

هل كانت مفيدة؟

المحلول

إذا كنت تقوم بتمديد net.rim.device.api.ui.screen (وليس الشاشة الرئيسية أو طفل آخر من الشاشة) ، فيجب عليك تعيين نمط Default_Close على وجه التحديد مستندات API:

public boolean onClose()

Indicates a close event has occurred.

The default implementation is activated by specifying DEFAULT_CLOSE. It will call onSavePrompt() if the screen is dirty, then call close() if successful.

Returns:
    True if the screen closes; otherwise, false.
Since:
    JDE 3.6.0

يجب أن يؤدي الاتصال على نظام الاتصال. الطريقة العادية لتطبيق GUI Blackberry هي الخروج عندما يتم ظهور الشاشة الأخيرة من مكدس العرض ، والذي يحدث عند إغلاق ().

نصائح أخرى

لا تتصل System.exit(0); يتصل super.onClose(); ما لم يكن كما يقول أدناه عدم تجاوزك MainScreen

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top