سؤال

أنا أبحث عن فئة الأنسب لأكون مرسلًا للمتعهدات المتزامنة التي تم استدعاؤها من أنشطتي.

أعتقد أنه يمكن أن يكون أحد هؤلاء:

  1. فئة فرعية من تطبيق;
  2. فئة فرعية من خدمة;
  3. خاصتي ثابتة أمور.

بالنسبة لي - من المتغير تنفيذ الخيار الثالث. لكن السؤال هو هل سيكون "مقاومًا للموت" أكثر من الخدمة أو التطبيق؟ كما أنه من المثير للاهتمام للغاية ما الذي سيعيش لفترة أطول - التطبيق أو الخدمة؟ أظن أن التطبيق يعيش طالما أن التطبيق (المهمة من حيث أندرويد) يعيش.

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

تحديث:

في الأصل تم طرح السؤال في 2010, ، عندما كان (1) Android منصة جديدة للمطورين و (2) كانت وثائق Google غامضة للغاية (في بعض الحالات كان الأمر مضللاً) حول دورات الحياة مكونات التطبيق ودورة حياة التطبيق بأكملها.

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

المحلول

يجب عليك بالتأكيد استخدام أ خدمة.

السبب الرئيسي وراء هذا - Service هل تم توثيقه الخاص دورة الحياة, ، في حين أن التطبيق لا. Application مثال ، مثل أي من المتغيرات الثابتة ، يمكن قتلها بواسطة النظام تقريبًا في أي وقت ، لن تتلقى أي رد اتصال ولا يمكنك إيقاف هذه العملية. لذلك ، سيتم فقدان أي بيانات غير محفوظة (جميع المتغيرات الثابتة).

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

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