سؤال

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

وعلى سبيل المثال لنفترض لدينا MyActivity الذي فعله بعض النخب. وذلك لدي هذه الفئة مدير دعا MyManager، ولدي هذا الأسلوب في أنه

raiseToast(Activity sourceActivity) {

  Toast.makeText(sourceActivity, demo, Toast.LENGTH_LONG).show();
}

وومن الدرجة Myactivity نحن داعيا هذه الطريقة على النحو التالي:

MyManager manager=new MyManager();
manager.raiseToast(MyActivity.this);

وأنه يعمل بشكل جيد.

ما أنا أسأل هنا، وهذا هو الطريقة الصحيحة لتمرير آخر كمعلمة إلى كائن غير النشاط؟ أواجه تسرب الذاكرة على الجهاز الحقيقي (وليس المحاكي)، وأنا أتساءل عما إذا كان هذا يمكن أن يسبب أيضا أي سبب لذلك؟

وبفضل عيدان.

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

المحلول

يمكنك محاولة لتمرير سياق التطبيق الذي هو getApplicationContext () على النشاط. لماذا لديك هذا الكائن MyManager؟ يمكنك فقط رفع نخب من النشاط دون وجود لها في الصف منفصلة. نقل طريقتك raiseToast () لهيئة النشاط وفقط الذي يطلق عليه.

وتحرير: يرجى قراءة HTTP: // الروبوت المطورين .blogspot.com / 2009/01 / تجنب الذاكرة-leaks.html

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