مشاكل في قتل تطبيق BlackBerry مخصص
-
21-09-2019 - |
سؤال
جميع شاشاتي المتأصلة من الشاشة مع طريقة 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