سؤال

أنا تطوير لالروبوت باستخدام الشروح الروبوت.لدي كائن يمكن ملاحظته المفرد الذي أريد أن أضيف النشاط كمراقب.شيء من هذا القبيل على النحو التالي:

@EActivity(R.layout.myActivity)
public class MyActivity extends SherlockActivity implements Observer { 

    @Bean //has singleton scope
    protected Observerable o;

    @Override
    public void onCreate() {
        o.registerObserver(this);
    }

    @Override
    public void onDestroy() {
        o.unregisterObserver(this);
    }

    //more code

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

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

المحلول

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

نصائح أخرى

وفقا لدورة حياة النشاط على وثائق الروبوت, ، يمكن أن تحدث هذه الحالة إذا كان يجب أن يبدأ تطبيق آخر ولا يحتوي النظام على ذاكرة كافية.

تحرير:حسنا ، يبدو أن النظام لا يزال استدعاء هذه الطريقة في هذه الحالة.لست متأكدا حقا من سير العمل بعد الآن...

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