هل يجب أن تكون الدعوة إلى طريقة الطبقة الفائقة هي البيان الأول?

StackOverflow https://stackoverflow.com//questions/9625920

سؤال

يمكن قراءة نتائج التعرف على الكلام في onActivityResult(int requestCode, int resultCode, Intent data) الطريقة ، كما هو موضح في هذا المثال.تتجاوز هذه الطريقة نفس الطريقة في الفصل Activity:لماذا هو الدعوة إلى طريقة سوبيركلاس ليس البيان الأول?

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == VOICE_RECOGNITION_REQUEST_CODE && resultCode == RESULT_OK) {
        // Fill the list view with the strings the recognizer thought it could have heard
        // ...
    }

    super.onActivityResult(requestCode, resultCode, data);
}
هل كانت مفيدة؟

المحلول

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

الطرق التي تتجاوزها والتي تعد جزءا من تدمير المكونات (onPause(), onStop(), onDestroy(), ، إلخ.) ، يجب عليك القيام بعملك أولا وسلسلة إلى الطبقة الفائقة كآخر شيء.بهذه الطريقة ، في حالة الروبوت ينظف شيئا أن عملك يعتمد على ، سوف فعلت عملك أولا.

الطرق التي تعيد شيئا آخر غير void (onCreateOptionsMenu(), ، إلخ.) ، في بعض الأحيان كنت سلسلة إلى سوبيركلاس في بيان العودة ، على افتراض أنك لا تفعل على وجه التحديد شيء يحتاج إلى فرض قيمة إرجاع معينة.

كل شيء آخر such مثل onActivityResult() -- الأمر متروك لكم ، على العموم.أنا أميل إلى سلسلة إلى سوبيركلاس كأول شيء ، ولكن إلا إذا كنت تواجه مشاكل ، تسلسل في وقت لاحق يجب أن يكون على ما يرام.

نصائح أخرى

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

بشكل عام على الرغم من أنه لا يهم وإذا كان سيتم ذكره في SDK - لقد ركضت في ذكرها بعض الأماكن في SKD (أفكر في الوثائق المتعلقة بالحوار) لكنني لا أستطيعتذكر بالضبط الصفحة / القسم قيد التشغيل.

هناك بعض المناقشة الأكثر تفصيلا حول الموضوع هنا: http:// groups.google.com/group/android-developers/browse_thread/thread/9ddb2b06c21c8457

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